Mock Version: 1.2.17 Mock Version: 1.2.17 ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target noarch --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/cloud7-openstack-train-el7-build-65816-324208/root'shell=FalseprintOutput=Falseenv={'LANG': 'en_GB.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'}gid=135user='mockbuild'timeout=86400logger=uid=996) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target noarch --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'LANG': 'en_GB.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'} and shell False Building target platforms: noarch Building for target noarch Wrote: /builddir/build/SRPMS/openstack-ironic-13.0.1-1.el7.src.rpm Child return code was: 0 ENTER ['do'](['bash', '--login', '-c', u'/usr/bin/rpmbuild -bb --target noarch --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/cloud7-openstack-train-el7-build-65816-324208/root'shell=Falseuid=996env={'LANG': 'en_GB.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'}gid=135user='mockbuild'timeout=86400private_network=Truelogger=printOutput=False) Executing command: ['bash', '--login', '-c', u'/usr/bin/rpmbuild -bb --target noarch --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'LANG': 'en_GB.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'} and shell False Building target platforms: noarch Building for target noarch Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.EBI4cm + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ironic-13.0.1 + /usr/bin/gzip -dc /builddir/build/SOURCES/ironic-13.0.1.tar.gz + /usr/bin/tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd ironic-13.0.1 + /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.FCiKI2 + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.1 + CFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mcpu=power8 -mtune=power8' + /usr/bin/python2 setup.py build '--executable=/usr/bin/python2 -s' running build running build_py creating build creating build/lib creating build/lib/ironic creating build/lib/ironic/tests creating build/lib/ironic/tests/unit creating build/lib/ironic/tests/unit/drivers creating build/lib/ironic/tests/unit/drivers/modules creating 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_job.py -> 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/utils.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_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_raid.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/test_ipmitool.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_iscsi_deploy.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_snmp.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_noop_mgmt.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_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_image_cache.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_noop.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_client.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_console_utils.py -> build/lib/ironic/tests/unit/drivers/modules 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/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 copying ironic/tests/unit/drivers/test_generic.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/test_snmp.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/third_party_driver_mocks.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_xclarity.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_ilo.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/__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_irmc.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ibmc.py -> build/lib/ironic/tests/unit/drivers creating build/lib/ironic/tests/unit/db creating 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/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/test_node_traits.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_deploy_templates.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/test_bios_settings.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_nodes.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/__init__.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_volume_connectors.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_conductor.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/utils.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_ports.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_api.py -> build/lib/ironic/tests/unit/db creating build/lib/ironic/hacking copying ironic/hacking/checks.py -> build/lib/ironic/hacking copying ironic/hacking/__init__.py -> build/lib/ironic/hacking copying ironic/version.py -> build/lib/ironic copying ironic/__init__.py -> build/lib/ironic creating 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 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/base.py -> 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 creating build/lib/ironic/drivers creating build/lib/ironic/drivers/modules creating build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible creating 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_neutron.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_hash_ring.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_images.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_glance_service.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/__init__.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_json_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_nova.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_wsgi_service.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_policy.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_states.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_context.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_raid.py -> build/lib/ironic/tests/unit/common copying ironic/drivers/xclarity.py -> build/lib/ironic/drivers copying ironic/drivers/ipmi.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/irmc.py -> build/lib/ironic/drivers copying ironic/drivers/base.py -> build/lib/ironic/drivers copying ironic/drivers/snmp.py -> build/lib/ironic/drivers copying ironic/drivers/__init__.py -> build/lib/ironic/drivers copying ironic/drivers/fake_hardware.py -> build/lib/ironic/drivers copying ironic/drivers/utils.py -> build/lib/ironic/drivers copying ironic/drivers/drac.py -> build/lib/ironic/drivers copying ironic/drivers/hardware_type.py -> build/lib/ironic/drivers copying ironic/drivers/intel_ipmi.py -> build/lib/ironic/drivers copying ironic/drivers/redfish.py -> build/lib/ironic/drivers copying ironic/drivers/generic.py -> build/lib/ironic/drivers creating build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_status.py -> 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_dbsync.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_conductor.py -> build/lib/ironic/tests/unit/cmd creating build/lib/ironic/objects copying ironic/objects/allocation.py -> build/lib/ironic/objects copying ironic/objects/deploy_template.py -> build/lib/ironic/objects copying ironic/objects/portgroup.py -> build/lib/ironic/objects copying ironic/objects/conductor.py -> build/lib/ironic/objects copying ironic/objects/bios.py -> build/lib/ironic/objects copying ironic/objects/indirection.py -> build/lib/ironic/objects copying ironic/objects/base.py -> build/lib/ironic/objects copying ironic/objects/notification.py -> build/lib/ironic/objects copying ironic/objects/__init__.py -> build/lib/ironic/objects copying ironic/objects/node.py -> build/lib/ironic/objects copying ironic/objects/fields.py -> build/lib/ironic/objects copying ironic/objects/chassis.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 copying ironic/objects/port.py -> build/lib/ironic/objects 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/test_volume.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_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_deploy_template.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_versions.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_allocation.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_notification_utils.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/__init__.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/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_conductor.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_node.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_portgroup.py -> build/lib/ironic/tests/unit/api/controllers/v1 creating build/lib/ironic/common copying ironic/common/i18n.py -> build/lib/ironic/common copying ironic/common/keystone.py -> build/lib/ironic/common copying ironic/common/config.py -> build/lib/ironic/common copying ironic/common/exception.py -> build/lib/ironic/common copying ironic/common/cinder.py -> build/lib/ironic/common copying ironic/common/pxe_utils.py -> build/lib/ironic/common copying ironic/common/indicator_states.py -> build/lib/ironic/common copying ironic/common/rpc.py -> build/lib/ironic/common copying ironic/common/driver_factory.py -> build/lib/ironic/common copying ironic/common/image_service.py -> build/lib/ironic/common copying ironic/common/nova.py -> build/lib/ironic/common copying ironic/common/boot_devices.py -> build/lib/ironic/common copying ironic/common/dhcp_factory.py -> build/lib/ironic/common copying ironic/common/hash_ring.py -> build/lib/ironic/common copying ironic/common/faults.py -> build/lib/ironic/common copying ironic/common/wsgi_service.py -> build/lib/ironic/common copying ironic/common/rpc_service.py -> build/lib/ironic/common copying ironic/common/raid.py -> build/lib/ironic/common copying ironic/common/policy.py -> build/lib/ironic/common copying ironic/common/service.py -> build/lib/ironic/common copying ironic/common/__init__.py -> build/lib/ironic/common copying ironic/common/context.py -> build/lib/ironic/common copying ironic/common/components.py -> build/lib/ironic/common copying ironic/common/fsm.py -> build/lib/ironic/common copying ironic/common/profiler.py -> build/lib/ironic/common copying ironic/common/boot_modes.py -> build/lib/ironic/common copying ironic/common/network.py -> build/lib/ironic/common copying ironic/common/utils.py -> build/lib/ironic/common copying ironic/common/images.py -> build/lib/ironic/common copying ironic/common/swift.py -> build/lib/ironic/common copying ironic/common/states.py -> build/lib/ironic/common copying ironic/common/release_mappings.py -> build/lib/ironic/common copying ironic/common/neutron.py -> build/lib/ironic/common creating 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_task_manager.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_notification_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_utils.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/__init__.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_allocations.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/mgr_utils.py -> build/lib/ironic/tests/unit/conductor creating build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/common.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/__init__.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/power.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/management.py -> build/lib/ironic/drivers/modules/xclarity creating 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/__init__.py -> build/lib/ironic/api copying ironic/api/hooks.py -> build/lib/ironic/api copying ironic/api/app.py -> build/lib/ironic/api copying ironic/api/wsgi.py -> build/lib/ironic/api creating build/lib/ironic/api/middleware copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/auth_token.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware creating 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/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible creating 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 copying ironic/common/glance_service/__init__.py -> build/lib/ironic/common/glance_service 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/drivers/modules/irmc copying ironic/drivers/modules/irmc/bios.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/boot.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/raid.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/__init__.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/inspect.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/management.py -> build/lib/ironic/drivers/modules/irmc creating build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/server.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/__init__.py -> build/lib/ironic/common/json_rpc creating 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_console.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/__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_vendor.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_common.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_firmware_processor.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 creating build/lib/ironic/db copying ironic/db/__init__.py -> build/lib/ironic/db copying ironic/db/migration.py -> build/lib/ironic/db copying ironic/db/api.py -> build/lib/ironic/db copying ironic/drivers/modules/inspect_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_base.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipmitool.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/iscsi_deploy.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/inspector.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop_mgmt.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/image_cache.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/snmp.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/__init__.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/agent_base_vendor.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/fake.py -> build/lib/ironic/drivers/modules creating 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/base.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/__init__.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 copying ironic/tests/unit/drivers/modules/ibmc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc 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/drivers/modules/storage copying ironic/drivers/modules/storage/cinder.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/noop.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/__init__.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/external.py -> build/lib/ironic/drivers/modules/storage creating build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy copying ironic/tests/unit/api/test_proxy_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_root.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_middleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/__init__.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/utils.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api creating 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_boot.py -> 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_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_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_raid.py -> build/lib/ironic/tests/unit/drivers/modules/irmc creating build/lib/ironic/dhcp copying ironic/dhcp/base.py -> build/lib/ironic/dhcp copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp copying ironic/dhcp/none.py -> build/lib/ironic/dhcp copying ironic/dhcp/neutron.py -> build/lib/ironic/dhcp creating 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/vendor_passthru.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/__init__.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/inspect.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/job.py -> build/lib/ironic/drivers/modules/drac creating 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/__init__.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/power.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/utils.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/inspect.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/management.py -> build/lib/ironic/drivers/modules/redfish creating 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 copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers creating 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 copying ironic/cmd/__init__.py -> build/lib/ironic/cmd copying ironic/cmd/api.py -> build/lib/ironic/cmd copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/test_base.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/policy_fixture.py -> build/lib/ironic/tests/unit creating build/lib/ironic/conf copying ironic/conf/service_catalog.py -> build/lib/ironic/conf copying ironic/conf/xclarity.py -> build/lib/ironic/conf copying ironic/conf/iscsi.py -> build/lib/ironic/conf copying ironic/conf/audit.py -> build/lib/ironic/conf copying ironic/conf/ipmi.py -> build/lib/ironic/conf copying ironic/conf/cinder.py -> build/lib/ironic/conf copying ironic/conf/ibmc.py -> build/lib/ironic/conf copying ironic/conf/deploy.py -> build/lib/ironic/conf copying ironic/conf/console.py -> build/lib/ironic/conf copying ironic/conf/ilo.py -> build/lib/ironic/conf copying ironic/conf/glance.py -> build/lib/ironic/conf copying ironic/conf/irmc.py -> build/lib/ironic/conf copying ironic/conf/conductor.py -> build/lib/ironic/conf copying ironic/conf/metrics.py -> build/lib/ironic/conf copying ironic/conf/inspector.py -> build/lib/ironic/conf copying ironic/conf/nova.py -> build/lib/ironic/conf copying ironic/conf/snmp.py -> build/lib/ironic/conf copying ironic/conf/database.py -> build/lib/ironic/conf copying ironic/conf/agent.py -> build/lib/ironic/conf copying ironic/conf/__init__.py -> build/lib/ironic/conf copying ironic/conf/auth.py -> build/lib/ironic/conf copying ironic/conf/json_rpc.py -> build/lib/ironic/conf copying ironic/conf/api.py -> build/lib/ironic/conf copying ironic/conf/healthcheck.py -> build/lib/ironic/conf copying ironic/conf/opts.py -> build/lib/ironic/conf copying ironic/conf/drac.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf copying ironic/conf/default.py -> build/lib/ironic/conf copying ironic/conf/ansible.py -> build/lib/ironic/conf copying ironic/conf/pxe.py -> build/lib/ironic/conf copying ironic/conf/neutron.py -> build/lib/ironic/conf copying ironic/conf/metrics_statsd.py -> build/lib/ironic/conf copying ironic/conf/dhcp.py -> build/lib/ironic/conf copying ironic/conf/redfish.py -> build/lib/ironic/conf creating 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/console.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/common.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/raid.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/__init__.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/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/vendor.py -> build/lib/ironic/drivers/modules/ilo creating 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/task_manager.py -> build/lib/ironic/conductor copying ironic/conductor/manager.py -> build/lib/ironic/conductor copying ironic/conductor/steps.py -> build/lib/ironic/conductor copying ironic/conductor/notification_utils.py -> build/lib/ironic/conductor copying ironic/conductor/__init__.py -> build/lib/ironic/conductor copying ironic/conductor/utils.py -> build/lib/ironic/conductor copying ironic/conductor/rpcapi.py -> build/lib/ironic/conductor creating build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/mappings.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/__init__.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/management.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/vendor.py -> build/lib/ironic/drivers/modules/ibmc creating build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_trait.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_deploy_template.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/__init__.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_volume_target.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_conductor.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/utils.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_notification.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_fields.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_portgroup.py -> build/lib/ironic/tests/unit/objects creating 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/__init__.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 copying ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity creating 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_boot.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 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_power.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 creating build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/flat.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/common.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/__init__.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/neutron.py -> build/lib/ironic/drivers/modules/network copying ironic/tests/base.py -> build/lib/ironic/tests copying ironic/tests/__init__.py -> build/lib/ironic/tests 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/api/controllers/v1 copying ironic/api/controllers/v1/allocation.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/deploy_template.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/portgroup.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/bios.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/notification_utils.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/versions.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/__init__.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/chassis.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/event.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.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/volume_target.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/port.py -> build/lib/ironic/api/controllers/v1 creating build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_neutron.py -> 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 creating 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 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 running egg_info deleting ironic.egg-info/requires.txt writing ironic.egg-info/PKG-INFO writing top-level names to ironic.egg-info/top_level.txt writing dependency_links to ironic.egg-info/dependency_links.txt writing entry points to ironic.egg-info/entry_points.txt [pbr] Reusing existing SOURCES.txt 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/raid_config_schema.json -> build/lib/ironic/drivers copying ironic/common/grub_conf.template -> build/lib/ironic/common copying ironic/common/isolinux_config.template -> build/lib/ironic/common 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/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 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 + sleep 1 + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.meTwTK + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch ++ dirname /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch + cd ironic-13.0.1 + CFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mcpu=power8 -mtune=power8' + /usr/bin/python2 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch running install [pbr] Generating AUTHORS [pbr] AUTHORS complete (0.0s) running install_lib creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7 creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/alembic.ini -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/migration.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/api.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/models.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/script.py.mako -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/README -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/env.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db copying build/lib/ironic/db/migration.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db copying build/lib/ironic/db/api.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/hacking copying build/lib/ironic/hacking/checks.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/hacking copying build/lib/ironic/hacking/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/hacking copying build/lib/ironic/version.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/i18n.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/keystone.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/grub_conf.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/config.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/exception.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/cinder.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/pxe_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/indicator_states.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/rpc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/driver_factory.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/image_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/nova.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/boot_devices.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/dhcp_factory.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/hash_ring.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/faults.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/wsgi_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/rpc_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/policy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/context.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/components.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/fsm.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/profiler.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/boot_modes.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/network.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/isolinux_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/server.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/client.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/json_rpc copying build/lib/ironic/common/images.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/swift.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/states.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/release_mappings.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common copying build/lib/ironic/common/neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/image_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/service_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/glance_service copying build/lib/ironic/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/xclarity.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/ipmi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/ibmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/ilo.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/irmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/raid_config_schema.json -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible copying build/lib/ironic/drivers/modules/ansible/deploy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/deploy.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/clean.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/inventory -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/configure creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/clean creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/discover creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/ansible.cfg -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible copying build/lib/ironic/drivers/modules/inspect_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_grub_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/boot.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/agent_client.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipxe_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipmitool.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/iscsi_deploy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/deploy_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/vendor_passthru.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/job.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/inspector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/boot.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/ipxe.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/cinder.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/noop.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/external.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/storage creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/noop_mgmt.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/noop.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/firmware_processor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/console.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/boot.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/vendor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/master_grub_cfg.txt -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/image_cache.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot.ipxe -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/xclarity creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/flat.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/noop.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/pxe_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/mappings.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/vendor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/boot_mode_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/console_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_base_vendor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/fake.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/fake_hardware.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/drac.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/hardware_type.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/intel_ipmi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/redfish.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers copying build/lib/ironic/drivers/generic.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/dhcp copying build/lib/ironic/dhcp/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/dhcp copying build/lib/ironic/dhcp/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/dhcp copying build/lib/ironic/dhcp/none.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/dhcp copying build/lib/ironic/dhcp/neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/dhcp creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/cmd copying build/lib/ironic/cmd/conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/cmd copying build/lib/ironic/cmd/dbsync.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/cmd copying build/lib/ironic/cmd/status.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/cmd copying build/lib/ironic/cmd/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/cmd copying build/lib/ironic/cmd/api.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/cmd creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_traits.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_portgroups.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_deploy_templates.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/test_volume_targets.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_bios_settings.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_nodes.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_allocations.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_volume_connectors.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_tags.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_chassis.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_ports.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_api.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_driver_factory.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_swift.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_hash_ring.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_fsm.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_images.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_release_mappings.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_glance_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_network.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_json_rpc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_nova.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_pxe_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_wsgi_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_keystone.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_policy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_cinder.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_states.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_image_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_context.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_grub_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_generic.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_drac.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_fake_hardware.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ipmi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_timeout.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_xclarity.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_redfish.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ilo.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/test_ipmitool.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/test_pxe.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/drac creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/irmc creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/storage creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/test_deploy_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/test_noop.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/xclarity creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/test_agent_client.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/test_inspector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/test_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/boot.ipxe -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_irmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ibmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/dhcp creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/test_status.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/test_dbsync.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/test_conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/test_base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/raid_constants.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/stubs.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/policy_fixture.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_proxy_middleware.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_ospmiddleware.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_root.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_middleware.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/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.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_audit.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_healthcheck.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_hooks.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_acl.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_task_manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_steps.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_notification_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_base_manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_allocations.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_trait.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_port.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_deploy_template.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_allocation.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_target.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_connector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_chassis.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_notification.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_node.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_fields.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_objects.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_portgroup.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/test_auth.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conf creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/functional copying build/lib/ironic/tests/functional/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/functional copying build/lib/ironic/tests/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests copying build/lib/ironic/tests/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api copying build/lib/ironic/api/config.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api copying build/lib/ironic/api/expose.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/link.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/root.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/version.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/allocation.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/types.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/deploy_template.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/ramdisk.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/portgroup.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/state.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/notification_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/collection.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/versions.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/node.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/chassis.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/event.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume_connector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/driver.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume_target.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/port.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api copying build/lib/ironic/api/hooks.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api copying build/lib/ironic/api/app.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/parsable_error.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/auth_token.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/json_ext.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/middleware copying build/lib/ironic/api/wsgi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor copying build/lib/ironic/conductor/allocations.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor copying build/lib/ironic/conductor/base_manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor copying build/lib/ironic/conductor/task_manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor copying build/lib/ironic/conductor/manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor copying build/lib/ironic/conductor/steps.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor copying build/lib/ironic/conductor/notification_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor copying build/lib/ironic/conductor/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor copying build/lib/ironic/conductor/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor copying build/lib/ironic/conductor/rpcapi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/allocation.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/deploy_template.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/portgroup.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/indirection.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/notification.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/node.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/fields.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/chassis.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/trait.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/volume_connector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/volume_target.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects copying build/lib/ironic/objects/port.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/service_catalog.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/xclarity.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/iscsi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/audit.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/ipmi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/cinder.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/ibmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/deploy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/console.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/ilo.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/glance.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/irmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/metrics.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/inspector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/nova.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/database.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/agent.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/auth.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/json_rpc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/api.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/healthcheck.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/opts.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/drac.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/swift.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/default.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/ansible.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/pxe.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/metrics_statsd.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/dhcp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf copying build/lib/ironic/conf/redfish.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/migration.py to migration.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/api.py to api.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/models.py to models.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/env.py to env.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py to 93706939026c_add_node_protected_field.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py to 1e1d5ace7dc6_add_inspection_started_at_and_.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py to bb59b63f55a_add_node_driver_internal_info.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py to 487deb87cc9d_add_conductor_affinity_and_online.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py to 3d86a077a3f2_add_port_physical_network.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py to 5674c57409b9_replace_nostate_with_available.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py to 28c44432c9c3_add_node_description.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py to dbefd6bdaa2c_add_default_column_to_.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py to 493d8f27f235_add_portgroup_configuration_fields.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py to fb3f10dd262e_add_fault_to_node_table.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py to dd67b91a1981_add_allocations_table.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py to e294876e8028_add_node_network_interface.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py to 1a59178ebdf6_add_volume_targets_table.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py to 21b331f883ef_add_provision_updated_at.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py to 516faf1bb9b1_resizing_column_nodes_driver.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py to 3cb628139ea4_nodes_add_console_enabled.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py to 2fb93ffd2af1_increase_node_name_length.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py to b4130a7fc904_create_nodetraits_table.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py to 2581ebaf0cb2_initial_migration.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py to 82c315d60161_add_bios_settings.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py to b9117ac17882_add_node_deploy_step.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py to 9cbeefa3763f_add_port_is_smartnic.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py to e918ff30eb42_resize_column_nodes_instance_info.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py to 48d6c242bb9b_add_node_tags.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py to 405cfe08f18d_add_rescue_interface_to_node.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py to 2aac7e0872f6_add_deploy_templates.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py to 10b163d4481e_add_port_portgroup_internal_info.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py to 1d6951876d68_add_storage_interface_db_field_and_.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py to 2353895ecfae_add_conductor_hardware_interfaces_table.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py to 1e15e7122cc9_add_extra_column_to_deploy_templates.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py to 242cc6a923b3_add_node_maintenance_reason.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py to 4f399b21ae71_add_node_clean_step.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py to 2d13bc3d6bba_add_bios_config_and_interface.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py to 3ae36a5f5131_add_logical_name.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py to 664f85c2f622_add_conductor_group_to_nodes_conductors.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py to bcdd431ba0bf_add_fields_for_all_interfaces.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py to f6fdb920c182_set_pxe_enabled_true.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/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.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py to 868cb606a74a_add_version_field_in_base_class.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py to 60cf717201bc_add_standalone_ports_supported.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py to 31baaf680d2b_add_node_instance_info.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py to c14cef6dfedf_populate_node_network_interface.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py to dd34e1f1303b_add_resource_class_to_node.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py to d2b036ae9378_add_automated_clean_field.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py to f190f9d00a11_add_node_owner.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py to daa1ba02d98_add_volume_connectors_table.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py to 3bea56f25597_add_unique_constraint_to_instance_uuid.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py to 789acc877671_add_raid_config.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/migration.py to migration.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/db/api.py to api.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/hacking/checks.py to checks.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/hacking/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/version.py to version.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/i18n.py to i18n.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/keystone.py to keystone.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/config.py to config.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/exception.py to exception.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/cinder.py to cinder.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/pxe_utils.py to pxe_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/indicator_states.py to indicator_states.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/rpc.py to rpc.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/driver_factory.py to driver_factory.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/image_service.py to image_service.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/nova.py to nova.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/boot_devices.py to boot_devices.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/dhcp_factory.py to dhcp_factory.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/hash_ring.py to hash_ring.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/faults.py to faults.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/wsgi_service.py to wsgi_service.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/rpc_service.py to rpc_service.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/raid.py to raid.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/policy.py to policy.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/service.py to service.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/context.py to context.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/components.py to components.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/fsm.py to fsm.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/profiler.py to profiler.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/boot_modes.py to boot_modes.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/network.py to network.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/json_rpc/server.py to server.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/json_rpc/client.py to client.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/json_rpc/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/images.py to images.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/swift.py to swift.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/states.py to states.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/release_mappings.py to release_mappings.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/neutron.py to neutron.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/glance_service/image_service.py to image_service.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/glance_service/service_utils.py to service_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/common/glance_service/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/xclarity.py to xclarity.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/ipmi.py to ipmi.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/ibmc.py to ibmc.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/ilo.py to ilo.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/irmc.py to irmc.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/base.py to base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/snmp.py to snmp.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/deploy.py to deploy.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py to ironic_log.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/library/stream_url.py to stream_url.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/library/root_hints.py to root_hints.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py to facts_wwn.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ansible/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/inspect_utils.py to inspect_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish/bios.py to bios.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish/boot.py to boot.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish/power.py to power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish/inspect.py to inspect.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/redfish/management.py to management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/agent_client.py to agent_client.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/pxe_base.py to pxe_base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ipmitool.py to ipmitool.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/iscsi_deploy.py to iscsi_deploy.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/deploy_utils.py to deploy_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac/bios.py to bios.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac/common.py to common.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac/vendor_passthru.py to vendor_passthru.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac/raid.py to raid.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac/power.py to power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac/inspect.py to inspect.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac/management.py to management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac/job.py to job.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/inspector.py to inspector.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc/bios.py to bios.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc/common.py to common.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc/boot.py to boot.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc/raid.py to raid.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc/power.py to power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc/inspect.py to inspect.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/irmc/management.py to management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ipxe.py to ipxe.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/storage/cinder.py to cinder.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/storage/noop.py to noop.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/storage/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/storage/external.py to external.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/intel_ipmi/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/intel_ipmi/management.py to management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/noop_mgmt.py to noop_mgmt.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/noop.py to noop.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo/firmware_processor.py to firmware_processor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo/console.py to console.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo/bios.py to bios.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo/common.py to common.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo/boot.py to boot.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo/raid.py to raid.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo/power.py to power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo/inspect.py to inspect.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo/management.py to management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ilo/vendor.py to vendor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/image_cache.py to image_cache.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/snmp.py to snmp.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/agent.py to agent.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/xclarity/common.py to common.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/xclarity/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/xclarity/power.py to power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/xclarity/management.py to management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/network/flat.py to flat.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/network/common.py to common.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/network/noop.py to noop.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/network/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/network/neutron.py to neutron.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc/mappings.py to mappings.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc/power.py to power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc/management.py to management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/ibmc/vendor.py to vendor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/boot_mode_utils.py to boot_mode_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/console_utils.py to console_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/agent_base_vendor.py to agent_base_vendor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/pxe.py to pxe.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/modules/fake.py to fake.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/fake_hardware.py to fake_hardware.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/drac.py to drac.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/hardware_type.py to hardware_type.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/intel_ipmi.py to intel_ipmi.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/redfish.py to redfish.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/drivers/generic.py to generic.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/dhcp/base.py to base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/dhcp/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/dhcp/none.py to none.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/dhcp/neutron.py to neutron.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/cmd/conductor.py to conductor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/cmd/dbsync.py to dbsync.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/cmd/status.py to status.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/cmd/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/cmd/api.py to api.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_node_traits.py to test_node_traits.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_portgroups.py to test_portgroups.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_deploy_templates.py to test_deploy_templates.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/sqlalchemy/test_migrations.py to test_migrations.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/sqlalchemy/test_models.py to test_models.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/sqlalchemy/test_types.py to test_types.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/sqlalchemy/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/sqlalchemy/test_api.py to test_api.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_volume_targets.py to test_volume_targets.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_bios_settings.py to test_bios_settings.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/base.py to base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_nodes.py to test_nodes.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_allocations.py to test_allocations.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_volume_connectors.py to test_volume_connectors.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_node_tags.py to test_node_tags.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_conductor.py to test_conductor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_chassis.py to test_chassis.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_ports.py to test_ports.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/db/test_api.py to test_api.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_driver_factory.py to test_driver_factory.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_neutron.py to test_neutron.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_swift.py to test_swift.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_hash_ring.py to test_hash_ring.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_fsm.py to test_fsm.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_images.py to test_images.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_release_mappings.py to test_release_mappings.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_glance_service.py to test_glance_service.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_utils.py to test_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_network.py to test_network.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_json_rpc.py to test_json_rpc.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_rpc_service.py to test_rpc_service.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_nova.py to test_nova.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_pxe_utils.py to test_pxe_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_wsgi_service.py to test_wsgi_service.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_keystone.py to test_keystone.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_policy.py to test_policy.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_cinder.py to test_cinder.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_states.py to test_states.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_image_service.py to test_image_service.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_context.py to test_context.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_rpc.py to test_rpc.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/common/test_raid.py to test_raid.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_generic.py to test_generic.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/third_party_driver_mock_specs.py to third_party_driver_mock_specs.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_snmp.py to test_snmp.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_drac.py to test_drac.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_fake_hardware.py to test_fake_hardware.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/third_party_driver_mocks.py to third_party_driver_mocks.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_ipmi.py to test_ipmi.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_xclarity.py to test_xclarity.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_redfish.py to test_redfish.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_ilo.py to test_ilo.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ansible/test_deploy.py to test_deploy.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ansible/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_ipmitool.py to test_ipmitool.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_inspect_utils.py to test_inspect_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py to test_iscsi_deploy.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_ipxe.py to test_ipxe.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_snmp.py to test_snmp.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/redfish/test_management.py to test_management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/redfish/test_boot.py to test_boot.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/redfish/test_utils.py to test_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/redfish/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/redfish/test_bios.py to test_bios.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/redfish/test_power.py to test_power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/redfish/test_inspect.py to test_inspect.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_pxe.py to test_pxe.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_noop_mgmt.py to test_noop_mgmt.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_boot_mode_utils.py to test_boot_mode_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_agent.py to test_agent.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_agent_base_vendor.py to test_agent_base_vendor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_image_cache.py to test_image_cache.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/drac/test_management.py to test_management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/drac/test_job.py to test_job.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/drac/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/drac/test_bios.py to test_bios.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/drac/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py to test_periodic_task.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/drac/test_power.py to test_power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/drac/test_common.py to test_common.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/drac/test_inspect.py to test_inspect.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/drac/test_raid.py to test_raid.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/irmc/test_management.py to test_management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/irmc/test_boot.py to test_boot.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/irmc/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/irmc/test_bios.py to test_bios.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py to test_periodic_task.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/irmc/test_power.py to test_power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/irmc/test_common.py to test_common.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/irmc/test_inspect.py to test_inspect.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/irmc/test_raid.py to test_raid.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/storage/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/storage/test_cinder.py to test_cinder.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/storage/test_external.py to test_external.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py to test_management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py to test_intel_ipmi.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi/base.py to base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_deploy_utils.py to test_deploy_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo/test_management.py to test_management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo/test_console.py to test_console.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo/test_boot.py to test_boot.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo/test_bios.py to test_bios.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo/test_vendor.py to test_vendor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo/test_power.py to test_power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo/test_common.py to test_common.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo/test_inspect.py to test_inspect.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py to test_firmware_processor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ilo/test_raid.py to test_raid.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_noop.py to test_noop.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/xclarity/test_management.py to test_management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/xclarity/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/xclarity/test_power.py to test_power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/xclarity/test_common.py to test_common.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/network/test_neutron.py to test_neutron.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/network/test_noop.py to test_noop.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/network/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/network/test_common.py to test_common.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/network/test_flat.py to test_flat.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_agent_client.py to test_agent_client.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ibmc/test_management.py to test_management.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ibmc/base.py to base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ibmc/test_utils.py to test_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ibmc/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ibmc/test_vendor.py to test_vendor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/ibmc/test_power.py to test_power.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_inspector.py to test_inspector.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/modules/test_console_utils.py to test_console_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_utils.py to test_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_base.py to test_base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_irmc.py to test_irmc.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/drivers/test_ibmc.py to test_ibmc.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/dhcp/test_neutron.py to test_neutron.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/dhcp/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/dhcp/test_factory.py to test_factory.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/cmd/test_status.py to test_status.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/cmd/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/cmd/test_dbsync.py to test_dbsync.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/cmd/test_conductor.py to test_conductor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/test_base.py to test_base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/raid_constants.py to raid_constants.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/stubs.py to stubs.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/policy_fixture.py to policy_fixture.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/test_proxy_middleware.py to test_proxy_middleware.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/test_ospmiddleware.py to test_ospmiddleware.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/test_root.py to test_root.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/base.py to base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/test_middleware.py to test_middleware.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/test_base.py to test_base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_volume.py to test_volume.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_port.py to test_port.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_driver.py to test_driver.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_event.py to test_event.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_deploy_template.py to test_deploy_template.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_root.py to test_root.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_versions.py to test_versions.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_ramdisk.py to test_ramdisk.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_allocation.py to test_allocation.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_types.py to test_types.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_notification_utils.py to test_notification_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_utils.py to test_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_volume_target.py to test_volume_target.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_volume_connector.py to test_volume_connector.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_conductor.py to test_conductor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_chassis.py to test_chassis.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_node.py to test_node.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_expose.py to test_expose.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/controllers/v1/test_portgroup.py to test_portgroup.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/test_audit.py to test_audit.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/test_healthcheck.py to test_healthcheck.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/test_hooks.py to test_hooks.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/api/test_acl.py to test_acl.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor/test_rpcapi.py to test_rpcapi.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor/test_task_manager.py to test_task_manager.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor/test_steps.py to test_steps.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor/test_notification_utils.py to test_notification_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor/test_utils.py to test_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor/test_manager.py to test_manager.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor/test_base_manager.py to test_base_manager.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor/test_allocations.py to test_allocations.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conductor/mgr_utils.py to mgr_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_trait.py to test_trait.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_port.py to test_port.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_deploy_template.py to test_deploy_template.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_allocation.py to test_allocation.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_bios.py to test_bios.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_volume_target.py to test_volume_target.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_volume_connector.py to test_volume_connector.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_conductor.py to test_conductor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_chassis.py to test_chassis.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_notification.py to test_notification.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_node.py to test_node.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_fields.py to test_fields.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_objects.py to test_objects.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/objects/test_portgroup.py to test_portgroup.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conf/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/unit/conf/test_auth.py to test_auth.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/functional/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/base.py to base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/tests/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/config.py to config.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/expose.py to expose.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/link.py to link.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/root.py to root.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/version.py to version.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/base.py to base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/allocation.py to allocation.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/types.py to types.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/deploy_template.py to deploy_template.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/ramdisk.py to ramdisk.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/portgroup.py to portgroup.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/conductor.py to conductor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/bios.py to bios.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/state.py to state.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/notification_utils.py to notification_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/collection.py to collection.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/versions.py to versions.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/node.py to node.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/chassis.py to chassis.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/event.py to event.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/volume_connector.py to volume_connector.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/volume.py to volume.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/driver.py to driver.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/volume_target.py to volume_target.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/port.py to port.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/hooks.py to hooks.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/app.py to app.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/middleware/parsable_error.py to parsable_error.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/middleware/auth_token.py to auth_token.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/middleware/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/middleware/json_ext.py to json_ext.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/api/wsgi.py to wsgi.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor/allocations.py to allocations.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor/base_manager.py to base_manager.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor/task_manager.py to task_manager.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor/manager.py to manager.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor/steps.py to steps.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor/notification_utils.py to notification_utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conductor/rpcapi.py to rpcapi.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/allocation.py to allocation.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/deploy_template.py to deploy_template.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/portgroup.py to portgroup.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/conductor.py to conductor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/bios.py to bios.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/indirection.py to indirection.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/base.py to base.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/notification.py to notification.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/node.py to node.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/fields.py to fields.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/chassis.py to chassis.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/trait.py to trait.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/volume_connector.py to volume_connector.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/volume_target.py to volume_target.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/objects/port.py to port.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/service_catalog.py to service_catalog.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/xclarity.py to xclarity.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/iscsi.py to iscsi.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/audit.py to audit.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/ipmi.py to ipmi.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/cinder.py to cinder.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/ibmc.py to ibmc.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/deploy.py to deploy.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/console.py to console.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/ilo.py to ilo.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/glance.py to glance.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/irmc.py to irmc.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/conductor.py to conductor.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/metrics.py to metrics.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/inspector.py to inspector.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/nova.py to nova.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/snmp.py to snmp.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/database.py to database.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/agent.py to agent.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/auth.py to auth.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/json_rpc.py to json_rpc.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/api.py to api.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/healthcheck.py to healthcheck.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/opts.py to opts.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/drac.py to drac.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/swift.py to swift.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/default.py to default.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/ansible.py to ansible.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/pxe.py to pxe.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/neutron.py to neutron.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/metrics_statsd.py to metrics_statsd.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/dhcp.py to dhcp.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic/conf/redfish.py to redfish.pyc writing byte-compilation script '/tmp/tmpd8M0dE.py' /usr/bin/python2 -O /tmp/tmpd8M0dE.py removing /tmp/tmpd8M0dE.py running install_data creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic copying etc/ironic/rootwrap.conf -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic/rootwrap.d copying etc/ironic/rootwrap.d/ironic-utils.filters -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic/rootwrap.d/ copying etc/ironic/rootwrap.d/ironic-images.filters -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic/rootwrap.d/ copying etc/ironic/rootwrap.d/ironic-lib.filters -> /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic/rootwrap.d/ running install_egg_info running egg_info writing ironic.egg-info/PKG-INFO writing top-level names to ironic.egg-info/top_level.txt writing dependency_links to ironic.egg-info/dependency_links.txt writing entry points to ironic.egg-info/entry_points.txt [pbr] Reusing existing SOURCES.txt Copying ironic.egg-info to /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic-13.0.1-py2.7.egg-info running install_scripts /usr/lib/python2.7/site-packages/pbr/packaging.py:410: EasyInstallDeprecationWarning: Use get_header header = easy_install.get_script_header("", executable, is_wininst) Installing ironic-api-wsgi script to /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/bin Installing ironic-rootwrap script to /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/bin Installing ironic-dbsync script to /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/bin Installing ironic-conductor script to /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/bin Installing ironic-status script to /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/bin Installing ironic-api script to /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/bin + install -p -D -m 644 /builddir/build/SOURCES/ironic.logrotate /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/etc/logrotate.d/openstack-ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/systemd/system + install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic-api.service /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/systemd/system + install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic-conductor.service /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/systemd/system + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/etc/sudoers.d + install -p -D -m 440 /builddir/build/SOURCES/ironic-rootwrap-sudoers /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/etc/sudoers.d/ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/var/lib/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/var/log/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/etc/ironic/rootwrap.d + export PYTHONPATH=. + PYTHONPATH=. + oslo-config-generator-2 --config-file tools/config/ironic-config-generator.conf --output-file /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch//etc/ironic/ironic.conf + oslopolicy-sample-generator-2 --config-file tools/policy/ironic-policy-generator.conf --output-file /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch//etc/ironic/policy.json + mv /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic/rootwrap.conf /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch//etc/ironic/rootwrap.conf + mv /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic/rootwrap.d/ironic-images.filters /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic/rootwrap.d/ironic-lib.filters /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic/rootwrap.d/ironic-utils.filters /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch//etc/ironic/rootwrap.d/ + rmdir /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic/rootwrap.d + rmdir /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/etc/ironic + install -p -D -m 640 /builddir/build/SOURCES/ironic-dist.conf /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch//usr/share/ironic/ironic-dist.conf + /usr/lib/rpm/find-debuginfo.sh --strict-build-id -m --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 /builddir/build/BUILD/ironic-13.0.1 /usr/lib/rpm/sepdebugcrcfix: Updated 0 CRC32s, 0 CRC32s did match. find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-compress + /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 Bytecompiling .py files below /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7 using /usr/bin/python2.7 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/lib/rpm/redhat/brp-java-repack-jars Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.euVKQI + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.1 + PYTHON=python2 + stestr-2 run 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. INFO [alembic.runtime.migration] Running stamp_revision -> 1e15e7122cc9 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. INFO [alembic.runtime.migration] Running stamp_revision -> 1e15e7122cc9 2019-10-11 05:54:18.208 31691 INFO alembic.runtime.migration [req-367c67f7-3541-4898-8298-1a27d256a91a - - - - -] Context impl SQLiteImpl. 2019-10-11 05:54:18.208 31691 INFO alembic.runtime.migration [req-367c67f7-3541-4898-8298-1a27d256a91a - - - - -] Will assume non-transactional DDL. {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length [0.303276s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest [0.024328s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr [0.034119s] ... ok DELETE: /v1/allocations/65a5aad0-b8fa-4084-9458-760b976b6216 GOT:Response: 204 No Content Openstack-Request-Id: req-9d565389-fb0e-4b28-8af1-7c9cb165c22a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id [0.162586s] ... ok DELETE: /v1/allocations/alloc1 GOT:Response: 204 No Content Openstack-Request-Id: req-37965eb6-280a-470f-937f-9494a825f576 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name [0.040341s] ... ok DELETE: /v1/allocations/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-87985a4b-d73b-4790-8b40-89479170f9f0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Allocation blah could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed [0.031385s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version [0.047845s] ... ok 2019-10-11 05:54:18.441 31692 INFO alembic.runtime.migration [req-a625978b-4037-4fb2-8943-d6ffb0917550 - - - - -] Context impl SQLiteImpl. 2019-10-11 05:54:18.442 31692 INFO alembic.runtime.migration [req-a625978b-4037-4fb2-8943-d6ffb0917550 - - - - -] Will assume non-transactional DDL. {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan [0.241839s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT:Response: 204 No Content Openstack-Request-Id: req-d0a920d9-c9c7-4029-9a00-dc5782db01d1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node [0.117934s] ... ok DELETE: /v1/nodes/2fc173a3-f25e-488a-8776-c37207deb108/allocation GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-512b1aca-b766-4ac7-b8ae-6edc63f46f32 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 2fc173a3-f25e-488a-8776-c37207deb108 could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node [0.045156s] ... ok DELETE: /v1/nodes/59f581fa-c136-4824-a95c-2c73a58da9ad/allocation GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ec080c2e-cb9b-43ed-a13a-fca38fc06462 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Allocation for node 59f581fa-c136-4824-a95c-2c73a58da9ad was not found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed [0.054076s] ... ok GET: /v1/node/50af5adc-102e-4c44-93f0-d04c0dd0d6b5/allocation {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed [0.024810s] ... ok DELETE: /v1/allocations/e8b771ed-894a-4201-a568-bb191beec547 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-9a2f1598-9d76-4d08-8487-4f933f85d4f8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked [0.056260s] ... ok GET: /v1/node/91d4a4f8-9cd0-4288-93e3-0e4f68aa62a5/allocation {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node [0.030582s] ... ok GET: /v1/allocations {} GOT:{u'allocations': []} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty [0.031460s] ... ok GET: /v1/allocations {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/20091ef2-dbeb-41e4-b23f-8fb23f6545fd {} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"description\": \"\", \"title\": \"Method Not Allowed\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id [0.043502s] ... ok GET: /v1/allocations?sort_key=name {} GOT:{u'allocations': [{u'node_uuid': None, u'uuid': u'fb91fd60-c193-4492-896a-8008a6362fef', u'links': [{u'href': u'http://localhost/v1/allocations/fb91fd60-c193-4492-896a-8008a6362fef', u'rel': u'self'}, {u'href': u'http://localhost/allocations/fb91fd60-c193-4492-896a-8008a6362fef', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:18.810215+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation1'}, {u'node_uuid': None, u'uuid': u'3141453b-aa69-4fab-ad1a-cae8ea60f02d', u'links': [{u'href': u'http://localhost/v1/allocations/3141453b-aa69-4fab-ad1a-cae8ea60f02d', u'rel': u'self'}, {u'href': u'http://localhost/allocations/3141453b-aa69-4fab-ad1a-cae8ea60f02d', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:18.808466+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation2'}, {u'node_uuid': None, u'uuid': u'de4e181f-3c4d-4629-9332-2170a3f15863', u'links': [{u'href': u'http://localhost/v1/allocations/de4e181f-3c4d-4629-9332-2170a3f15863', u'rel': u'self'}, {u'href': u'http://localhost/allocations/de4e181f-3c4d-4629-9332-2170a3f15863', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:18.789432+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation3'}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed [0.130004s] ... ok GOT:{u'allocations': [{u'node_uuid': None, u'uuid': u'd4df6720-3d3e-425c-8ef2-39939957f4e0', u'links': [{u'href': u'http://localhost/v1/allocations/d4df6720-3d3e-425c-8ef2-39939957f4e0', u'rel': u'self'}, {u'href': u'http://localhost/allocations/d4df6720-3d3e-425c-8ef2-39939957f4e0', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:18.845420+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation0'}, {u'node_uuid': None, u'uuid': u'70157a6c-b7ce-47fe-ab01-a2938b8bc8e5', u'links': [{u'href': u'http://localhost/v1/allocations/70157a6c-b7ce-47fe-ab01-a2938b8bc8e5', u'rel': u'self'}, {u'href': u'http://localhost/allocations/70157a6c-b7ce-47fe-ab01-a2938b8bc8e5', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:18.847149+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation1'}, {u'node_uuid': None, u'uuid': u'6f4f08d7-0635-4282-8a86-77459cfabae4', u'links': [{u'href': u'http://localhost/v1/allocations/6f4f08d7-0635-4282-8a86-77459cfabae4', u'rel': u'self'}, {u'href': u'http://localhost/allocations/6f4f08d7-0635-4282-8a86-77459cfabae4', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:18.848862+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation2'}], u'next': u'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=6f4f08d7-0635-4282-8a86-77459cfabae4'} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit [0.088649s] ... ok GET: /v1/allocations?node=banana {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a547470b-468d-4c8c-b65c-4930d2d3a2fa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node [0.082744s] ... ok PATCH: /v1/allocations/7858e0c2-27b2-438a-8d90-7b27c14b15fb [{'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-03b05436-0dad-44a8-bd23-6a5990f91262 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "7858e0c2-27b2-438a-8d90-7b27c14b15fb", "links": [{"href": "http://localhost/v1/allocations/7858e0c2-27b2-438a-8d90-7b27c14b15fb", "rel": "self"}, {"href": "http://localhost/allocations/7858e0c2-27b2-438a-8d90-7b27c14b15fb", "rel": "bookmark"}], "extra": {"foo1": "bar1", "foo2": "bar2"}, "last_error": null, "created_at": "2019-10-11T05:54:18.904996+00:00", "resource_class": "baremetal", "updated_at": "2019-10-11T05:54:18.921860+00:00", "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/7858e0c2-27b2-438a-8d90-7b27c14b15fb {} GOT:{u'node_uuid': None, u'uuid': u'7858e0c2-27b2-438a-8d90-7b27c14b15fb', u'links': [{u'href': u'http://localhost/v1/allocations/7858e0c2-27b2-438a-8d90-7b27c14b15fb', u'rel': u'self'}, {u'href': u'http://localhost/allocations/7858e0c2-27b2-438a-8d90-7b27c14b15fb', u'rel': u'bookmark'}], u'extra': {u'foo1': u'bar1', u'foo2': u'bar2'}, u'last_error': None, u'created_at': u'2019-10-11T05:54:18.904996+00:00', u'resource_class': u'baremetal', u'updated_at': u'2019-10-11T05:54:18.921860+00:00', u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi [0.041429s] ... ok 2019-10-11 05:54:18.770 31690 INFO alembic.runtime.migration [req-c6b62494-2d55-4317-bf70-2aad1975cff7 - - - - -] Context impl SQLiteImpl. 2019-10-11 05:54:18.771 31690 INFO alembic.runtime.migration [req-c6b62494-2d55-4317-bf70-2aad1975cff7 - - - - -] Will assume non-transactional DDL. {0} ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup [0.278874s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals [0.056461s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_init [0.013664s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan [0.033245s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals [0.033500s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok [0.013108s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header [0.031327s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestAllocationObject.test_allocation_init [0.007996s] ... ok DELETE: /v1/allocations/alloc1.json GOT:Response: 204 No Content Openstack-Request-Id: req-49d91d4d-f466-483d-b84c-5d925ed97caf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json [0.141590s] ... ok DELETE: /v1/allocations/4f39b3a2-4662-4bfb-8786-e4f824c52e4f GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"description\": \"The API version does not allow allocations\", \"title\": \"Method Not Allowed\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version [0.045168s] ... ok GET: /v1/allocations?state=allocating {} GOT:{u'allocations': [{u'node_uuid': None, u'uuid': u'95c6277d-7e47-48ff-92fa-d588284e0dca', u'links': [{u'href': u'http://localhost/v1/allocations/95c6277d-7e47-48ff-92fa-d588284e0dca', u'rel': u'self'}, {u'href': u'http://localhost/allocations/95c6277d-7e47-48ff-92fa-d588284e0dca', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.059843+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation0'}, {u'node_uuid': None, u'uuid': u'e99f96b0-49e4-473a-8aed-13117055964a', u'links': [{u'href': u'http://localhost/v1/allocations/e99f96b0-49e4-473a-8aed-13117055964a', u'rel': u'self'}, {u'href': u'http://localhost/allocations/e99f96b0-49e4-473a-8aed-13117055964a', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.062909+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation1'}, {u'node_uuid': None, u'uuid': u'd7dcef00-c58d-4457-89bb-7d6aa94035cf', u'links': [{u'href': u'http://localhost/v1/allocations/d7dcef00-c58d-4457-89bb-7d6aa94035cf', u'rel': u'self'}, {u'href': u'http://localhost/allocations/d7dcef00-c58d-4457-89bb-7d6aa94035cf', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.065907+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation2'}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state [0.123919s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} DELETE: /v1/allocations/ba!na!na1 GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"description\": \"The API version does not allow allocations\", \"title\": \"Method Not Allowed\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check [0.031901s] ... ok GET: /v1/allocations/?limit=3 {} GOT:{u'allocations': [{u'node_uuid': None, u'uuid': u'58a208b2-8b91-4094-851c-60b556e1124f', u'links': [{u'href': u'http://localhost/v1/allocations/58a208b2-8b91-4094-851c-60b556e1124f', u'rel': u'self'}, {u'href': u'http://localhost/allocations/58a208b2-8b91-4094-851c-60b556e1124f', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.278058+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation0'}, {u'node_uuid': None, u'uuid': u'35631761-b286-4c2a-b141-0a366fa5f700', u'links': [{u'href': u'http://localhost/v1/allocations/35631761-b286-4c2a-b141-0a366fa5f700', u'rel': u'self'}, {u'href': u'http://localhost/allocations/35631761-b286-4c2a-b141-0a366fa5f700', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.279772+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation1'}, {u'node_uuid': None, u'uuid': u'2f66fb6b-a50a-4a19-b8eb-faddb0db782b', u'links': [{u'href': u'http://localhost/v1/allocations/2f66fb6b-a50a-4a19-b8eb-faddb0db782b', u'rel': u'self'}, {u'href': u'http://localhost/allocations/2f66fb6b-a50a-4a19-b8eb-faddb0db782b', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.302225+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation2'}], u'next': u'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=2f66fb6b-a50a-4a19-b8eb-faddb0db782b'} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links [0.116739s] ... ok GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'd58941ac-a094-4118-ab72-b2f0751b2f70', u'links': [{u'href': u'http://localhost/v1/allocations/d58941ac-a094-4118-ab72-b2f0751b2f70', u'rel': u'self'}, {u'href': u'http://localhost/allocations/d58941ac-a094-4118-ab72-b2f0751b2f70', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.175503+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource [0.124746s] ... ok GET: /v1/allocations/f97f707a-8fb3-484d-85ed-71f18708da73?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5da77774-160d-4378-ac8f-15913bdbda78 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields [0.085594s] ... ok GET: /v1/allocations/ddab2483-c12b-498f-ab58-54a660f07c5a.json {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'ddab2483-c12b-498f-ab58-54a660f07c5a', u'links': [{u'href': u'http://localhost/v1/allocations/ddab2483-c12b-498f-ab58-54a660f07c5a', u'rel': u'self'}, {u'href': u'http://localhost/allocations/ddab2483-c12b-498f-ab58-54a660f07c5a', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.372529+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} PATCH: /v1/allocations/8d00c578-f0e3-44ad-8964-2922959ea818 [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f9834cf-e946-49c1-8602-b914455cc600 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "8d00c578-f0e3-44ad-8964-2922959ea818", "links": [{"href": "http://localhost/v1/allocations/8d00c578-f0e3-44ad-8964-2922959ea818", "rel": "self"}, {"href": "http://localhost/allocations/8d00c578-f0e3-44ad-8964-2922959ea818", "rel": "bookmark"}], "extra": {"foo1": "bar1", "foo3": "bar3"}, "last_error": null, "created_at": "2019-10-11T05:54:18.948522+00:00", "resource_class": "baremetal", "updated_at": "2019-10-11T05:54:18.963341+00:00", "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/8d00c578-f0e3-44ad-8964-2922959ea818 {} GOT:{u'node_uuid': None, u'uuid': u'8d00c578-f0e3-44ad-8964-2922959ea818', u'links': [{u'href': u'http://localhost/v1/allocations/8d00c578-f0e3-44ad-8964-2922959ea818', u'rel': u'self'}, {u'href': u'http://localhost/allocations/8d00c578-f0e3-44ad-8964-2922959ea818', u'rel': u'bookmark'}], u'extra': {u'foo1': u'bar1', u'foo3': u'bar3'}, u'last_error': None, u'created_at': u'2019-10-11T05:54:18.948522+00:00', u'resource_class': u'baremetal', u'updated_at': u'2019-10-11T05:54:18.963341+00:00', u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} PATCH: /v1/allocations/8d00c578-f0e3-44ad-8964-2922959ea818 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-42643528-c346-447e-9554-16d6b07f57d5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "8d00c578-f0e3-44ad-8964-2922959ea818", "links": [{"href": "http://localhost/v1/allocations/8d00c578-f0e3-44ad-8964-2922959ea818", "rel": "self"}, {"href": "http://localhost/allocations/8d00c578-f0e3-44ad-8964-2922959ea818", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:18.948522+00:00", "resource_class": "baremetal", "updated_at": "2019-10-11T05:54:18.979746+00:00", "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/8d00c578-f0e3-44ad-8964-2922959ea818 {} GOT:{u'node_uuid': None, u'uuid': u'8d00c578-f0e3-44ad-8964-2922959ea818', u'links': [{u'href': u'http://localhost/v1/allocations/8d00c578-f0e3-44ad-8964-2922959ea818', u'rel': u'self'}, {u'href': u'http://localhost/allocations/8d00c578-f0e3-44ad-8964-2922959ea818', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:18.948522+00:00', u'resource_class': u'baremetal', u'updated_at': u'2019-10-11T05:54:18.979746+00:00', u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} GET: /v1/allocations?node=node-1 {} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json [0.076741s] ... ok GET: /v1/allocations/fadae02b-f38b-468a-92e9-6a20b67253a8 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'fadae02b-f38b-468a-92e9-6a20b67253a8', u'links': [{u'href': u'http://localhost/v1/allocations/fadae02b-f38b-468a-92e9-6a20b67253a8', u'rel': u'self'}, {u'href': u'http://localhost/allocations/fadae02b-f38b-468a-92e9-6a20b67253a8', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.447932+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'pg.1'} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix [0.083648s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi [0.055980s] ... ok GOT:{u'allocations': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'591e94fd-fd74-49e3-8cfe-8c6a057be749', u'links': [{u'href': u'http://localhost/v1/allocations/591e94fd-fd74-49e3-8cfe-8c6a057be749', u'rel': u'self'}, {u'href': u'http://localhost/allocations/591e94fd-fd74-49e3-8cfe-8c6a057be749', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.380507+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation0'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'809a0504-c171-4e28-8d2e-63ed50b33a7a', u'links': [{u'href': u'http://localhost/v1/allocations/809a0504-c171-4e28-8d2e-63ed50b33a7a', u'rel': u'self'}, {u'href': u'http://localhost/allocations/809a0504-c171-4e28-8d2e-63ed50b33a7a', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.382224+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation1'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'b7699ac8-8b3f-4b19-919d-0f5f4b80a667', u'links': [{u'href': u'http://localhost/v1/allocations/b7699ac8-8b3f-4b19-919d-0f5f4b80a667', u'rel': u'self'}, {u'href': u'http://localhost/allocations/b7699ac8-8b3f-4b19-919d-0f5f4b80a667', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.383911+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation2'}]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name [0.113174s] ... ok GET: /v1/allocations?sort_key=uuid {} GOT:{u'allocations': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'3858301d-8d79-4378-aa33-64e49fbeb0d7', u'links': [{u'href': u'http://localhost/v1/allocations/3858301d-8d79-4378-aa33-64e49fbeb0d7', u'rel': u'self'}, {u'href': u'http://localhost/allocations/3858301d-8d79-4378-aa33-64e49fbeb0d7', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.514890+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation2'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'5e6ced1e-53ae-4f85-9c2f-0e4dd44e70d5', u'links': [{u'href': u'http://localhost/v1/allocations/5e6ced1e-53ae-4f85-9c2f-0e4dd44e70d5', u'rel': u'self'}, {u'href': u'http://localhost/allocations/5e6ced1e-53ae-4f85-9c2f-0e4dd44e70d5', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.511435+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation0'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'ce34665c-3047-48df-88ac-ef299075cb43', u'links': [{u'href': u'http://localhost/v1/allocations/ce34665c-3047-48df-88ac-ef299075cb43', u'rel': u'self'}, {u'href': u'http://localhost/allocations/ce34665c-3047-48df-88ac-ef299075cb43', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.513206+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation1'}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key [0.056867s] ... ok 2019-10-11 05:54:18.894 31693 INFO alembic.runtime.migration [req-1d4ff036-b111-4936-98ba-1b9b78c6199a - - - - -] Context impl SQLiteImpl. 2019-10-11 05:54:18.895 31693 INFO alembic.runtime.migration [req-1d4ff036-b111-4936-98ba-1b9b78c6199a - - - - -] Will assume non-transactional DDL. GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {3} ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri [0.246337s] ... ok {3} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings [0.013846s] ... ok GET: /v1/allocations {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"The API version does not allow allocations\", \"title\": \"Not Found\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version [0.056737s] ... ok GET: /v1/allocations?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'allocations': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'c74feb0e-3bee-405b-b5a8-9ab86246bd42', u'links': [{u'href': u'http://localhost/v1/allocations/c74feb0e-3bee-405b-b5a8-9ab86246bd42', u'rel': u'self'}, {u'href': u'http://localhost/allocations/c74feb0e-3bee-405b-b5a8-9ab86246bd42', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.040556+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid [0.053029s] ... ok PATCH: /v1/allocations/9771c6d2-27da-4c7a-b537-95ae1ca2fcf9 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8c6addfd-583e-4a45-bcfe-44e4f1496ae4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "9771c6d2-27da-4c7a-b537-95ae1ca2fcf9", "links": [{"href": "http://localhost/v1/allocations/9771c6d2-27da-4c7a-b537-95ae1ca2fcf9", "rel": "self"}, {"href": "http://localhost/allocations/9771c6d2-27da-4c7a-b537-95ae1ca2fcf9", "rel": "bookmark"}], "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "last_error": null, "created_at": "2019-10-11T05:54:19.565679+00:00", "resource_class": "baremetal", "updated_at": "2019-10-11T05:54:19.582093+00:00", "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/9771c6d2-27da-4c7a-b537-95ae1ca2fcf9 {} GOT:{u'node_uuid': None, u'uuid': u'9771c6d2-27da-4c7a-b537-95ae1ca2fcf9', u'links': [{u'href': u'http://localhost/v1/allocations/9771c6d2-27da-4c7a-b537-95ae1ca2fcf9', u'rel': u'self'}, {u'href': u'http://localhost/allocations/9771c6d2-27da-4c7a-b537-95ae1ca2fcf9', u'rel': u'bookmark'}], u'extra': {u'foo1': u'bar1', u'foo2': u'new value', u'foo3': u'bar3'}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.565679+00:00', u'resource_class': u'baremetal', u'updated_at': u'2019-10-11T05:54:19.582093+00:00', u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi [0.046137s] ... ok GET: /v1/allocations?fields=uuid,extra {} GOT:{u'allocations': [{u'uuid': u'7f1514ed-d0f9-448e-b409-8014e006f2ae', u'links': [{u'href': u'http://localhost/v1/allocations/7f1514ed-d0f9-448e-b409-8014e006f2ae', u'rel': u'self'}, {u'href': u'http://localhost/allocations/7f1514ed-d0f9-448e-b409-8014e006f2ae', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'363b81c7-c7b5-409f-84dc-92ac606e1e68', u'links': [{u'href': u'http://localhost/v1/allocations/363b81c7-c7b5-409f-84dc-92ac606e1e68', u'rel': u'self'}, {u'href': u'http://localhost/allocations/363b81c7-c7b5-409f-84dc-92ac606e1e68', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'07c21e56-8b00-4091-a5f9-30adc0a9e012', u'links': [{u'href': u'http://localhost/v1/allocations/07c21e56-8b00-4091-a5f9-30adc0a9e012', u'rel': u'self'}, {u'href': u'http://localhost/allocations/07c21e56-8b00-4091-a5f9-30adc0a9e012', u'rel': u'bookmark'}], u'extra': {}}]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields [0.079423s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version [0.022831s] ... ok PATCH: /v1/allocations/829e13b2-f1ad-42cf-9dff-2062b11f33bd [{'path': '/name', 'value': None, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b747865e-b251-421b-a905-d5da39a86863 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "829e13b2-f1ad-42cf-9dff-2062b11f33bd", "links": [{"href": "http://localhost/v1/allocations/829e13b2-f1ad-42cf-9dff-2062b11f33bd", "rel": "self"}, {"href": "http://localhost/allocations/829e13b2-f1ad-42cf-9dff-2062b11f33bd", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:19.609667+00:00", "resource_class": "baremetal", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/829e13b2-f1ad-42cf-9dff-2062b11f33bd {} GOT:{u'node_uuid': None, u'uuid': u'829e13b2-f1ad-42cf-9dff-2062b11f33bd', u'links': [{u'href': u'http://localhost/v1/allocations/829e13b2-f1ad-42cf-9dff-2062b11f33bd', u'rel': u'self'}, {u'href': u'http://localhost/allocations/829e13b2-f1ad-42cf-9dff-2062b11f33bd', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.609667+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none [0.045049s] ... ok GET: /v1/allocations?fields=node_uuid&limit=2 {} GOT:{u'allocations': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'links': [{u'href': u'http://localhost/v1/allocations/6108f3e9-d3a4-41ca-b444-55bf26dc05b9', u'rel': u'self'}, {u'href': u'http://localhost/allocations/6108f3e9-d3a4-41ca-b444-55bf26dc05b9', u'rel': u'bookmark'}]}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'links': [{u'href': u'http://localhost/v1/allocations/d77b2ae0-d0a6-4eb1-a782-99ce928c3e6b', u'rel': u'self'}, {u'href': u'http://localhost/allocations/d77b2ae0-d0a6-4eb1-a782-99ce928c3e6b', u'rel': u'bookmark'}]}], u'next': u'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=2&marker=d77b2ae0-d0a6-4eb1-a782-99ce928c3e6b'} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid [0.049771s] ... ok GET: /v1/allocations/4494ae09-a0f7-4fac-a969-3f1253ed54da {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'4494ae09-a0f7-4fac-a969-3f1253ed54da', u'links': [{u'href': u'http://localhost/v1/allocations/4494ae09-a0f7-4fac-a969-3f1253ed54da', u'rel': u'self'}, {u'href': u'http://localhost/allocations/4494ae09-a0f7-4fac-a969-3f1253ed54da', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.617369+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one [0.038941s] ... ok GET: /v1/allocations/ba!na!na! {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"The API version does not allow allocations\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check [0.022118s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation?fields=name,extra {} GOT:{u'name': None, u'links': [{u'href': u'http://localhost/v1/allocations/c4bcb0a9-ea10-4e45-8cc5-3f4fb54e308d', u'rel': u'self'}, {u'href': u'http://localhost/allocations/c4bcb0a9-ea10-4e45-8cc5-3f4fb54e308d', u'rel': u'bookmark'}], u'extra': {}} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields [0.057664s] ... ok GET: /v1/allocations/cd0954be-057f-41b2-9695-f78deddb28b0?fields=resource_class,extra {} GOT:{u'extra': {}, u'links': [{u'href': u'http://localhost/v1/allocations/cd0954be-057f-41b2-9695-f78deddb28b0', u'rel': u'self'}, {u'href': u'http://localhost/allocations/cd0954be-057f-41b2-9695-f78deddb28b0', u'rel': u'bookmark'}], u'resource_class': u'baremetal'} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields [0.040432s] ... ok GET: /v1/allocations/2c7f0d2b-2b2d-452c-a9e3-358a9c40d56a {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"The API version does not allow allocations\", \"title\": \"Not Found\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version [0.022673s] ... ok POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/e8ec9bac-e266-46ce-9e74-dea54122c9d1 Openstack-Request-Id: req-0214ea08-aead-4df9-8e07-b020b0d56ddc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "e8ec9bac-e266-46ce-9e74-dea54122c9d1", "links": [{"href": "http://localhost/v1/allocations/e8ec9bac-e266-46ce-9e74-dea54122c9d1", "rel": "self"}, {"href": "http://localhost/allocations/e8ec9bac-e266-46ce-9e74-dea54122c9d1", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:19.676095+00:00", "resource_class": "bm-super", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/e8ec9bac-e266-46ce-9e74-dea54122c9d1 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'e8ec9bac-e266-46ce-9e74-dea54122c9d1', u'links': [{u'href': u'http://localhost/v1/allocations/e8ec9bac-e266-46ce-9e74-dea54122c9d1', u'rel': u'self'}, {u'href': u'http://localhost/allocations/e8ec9bac-e266-46ce-9e74-dea54122c9d1', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.676095+00:00', u'resource_class': u'bm-super', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class [0.057500s] ... ok POST: /v1/allocations {'uuid': 'a7b0597e-3541-4dfc-911e-cc55dee308b7', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': ['this/is/not a/node/name'], 'name': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ffde6c8c-f072-4f2b-92fd-2f79bb787f31 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: this/is/not a/node/name\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid [0.050113s] ... ok GET: /v1/allocations/d73f9725-0572-4699-8c04-c517269f1d5e {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'd73f9725-0572-4699-8c04-c517269f1d5e', u'links': [{u'href': u'http://localhost/v1/allocations/d73f9725-0572-4699-8c04-c517269f1d5e', u'rel': u'self'}, {u'href': u'http://localhost/allocations/d73f9725-0572-4699-8c04-c517269f1d5e', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.678927+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'pg.json'} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name [0.038711s] ... ok GET: /v1/allocations {} GOT:{u'allocations': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1b800ae1-4358-49f8-adef-23dcee014959', u'links': [{u'href': u'http://localhost/v1/allocations/1b800ae1-4358-49f8-adef-23dcee014959', u'rel': u'self'}, {u'href': u'http://localhost/allocations/1b800ae1-4358-49f8-adef-23dcee014959', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.717506+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None}]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one [0.069713s] ... ok POST: /v1/allocations {'uuid': '4c7799b4-ad4f-4193-8432-441f4eb4598d', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0cb3985a-871b-4eb6-8d79-4e8ad8e933b7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error [0.111306s] ... ok POST: /v1/allocations {'uuid': 'ac51acf0-d33d-438c-a442-22b30e4efbbf', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"description\": \"The API version does not allow allocations\", \"title\": \"Method Not Allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version [0.033575s] ... ok POST: /v1/allocations {'uuid': 'f1eed20a-1df4-4d07-b71c-1543a889b24d', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': ['invalid-format'], 'name': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c26af4fd-0d06-4c1a-83c7-e44985f7a2dc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: invalid-format\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format [0.063995s] ... ok PATCH: /v1/allocations/a92f317c-ada3-454d-a174-de401441d6d4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a7f500d0-d7be-4137-9ec7-0e3e08c07d1a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "a92f317c-ada3-454d-a174-de401441d6d4", "links": [{"href": "http://localhost/v1/allocations/a92f317c-ada3-454d-a174-de401441d6d4", "rel": "self"}, {"href": "http://localhost/allocations/a92f317c-ada3-454d-a174-de401441d6d4", "rel": "bookmark"}], "extra": {"foo": "bar"}, "last_error": null, "created_at": "2019-10-11T05:54:19.783331+00:00", "resource_class": "baremetal", "updated_at": "2019-10-11T05:54:19.805808+00:00", "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add [0.040525s] ... ok PATCH: /v1/allocations/55dc1a62-81dd-4a91-b64f-37ac6af970b9 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0677c7e4-61b6-4998-b6ae-fca7ee820cbe X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail [0.041304s] ... ok PATCH: /v1/allocations/a5660e1a-e853-4c50-b277-f6bddc1c8253 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8dec03ef-52ec-4eb8-b60c-48d888e7457f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid [0.024332s] ... ok PATCH: /v1/allocations/e3c0ebd5-f742-45bb-a6de-42eb7b7a949c [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-90aeb45c-26fe-41bd-96b5-13b0a4e1083f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error [0.030628s] ... ok PATCH: /v1/allocations/3a2764ce-168e-47f8-b459-e9582c5ff89a [{'path': '/extra/a', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66c71f39-f833-49d9-b219-c7e42341f4d3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "3a2764ce-168e-47f8-b459-e9582c5ff89a", "links": [{"href": "http://localhost/v1/allocations/3a2764ce-168e-47f8-b459-e9582c5ff89a", "rel": "self"}, {"href": "http://localhost/allocations/3a2764ce-168e-47f8-b459-e9582c5ff89a", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:19.005115+00:00", "resource_class": "baremetal", "updated_at": "2019-10-11T05:54:19.019968+00:00", "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/3a2764ce-168e-47f8-b459-e9582c5ff89a {} GOT:{u'node_uuid': None, u'uuid': u'3a2764ce-168e-47f8-b459-e9582c5ff89a', u'links': [{u'href': u'http://localhost/v1/allocations/3a2764ce-168e-47f8-b459-e9582c5ff89a', u'rel': u'self'}, {u'href': u'http://localhost/allocations/3a2764ce-168e-47f8-b459-e9582c5ff89a', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.005115+00:00', u'resource_class': u'baremetal', u'updated_at': u'2019-10-11T05:54:19.019968+00:00', u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} GET: /v1/allocations/46a62f78-21de-42a9-8410-802bf051a007 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'46a62f78-21de-42a9-8410-802bf051a007', u'links': [{u'href': u'http://localhost/v1/allocations/46a62f78-21de-42a9-8410-802bf051a007', u'rel': u'self'}, {u'href': u'http://localhost/allocations/46a62f78-21de-42a9-8410-802bf051a007', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.247815+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} GET: /v1/allocations/46a62f78-21de-42a9-8410-802bf051a007 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'46a62f78-21de-42a9-8410-802bf051a007', u'links': [{u'href': u'http://localhost/v1/allocations/46a62f78-21de-42a9-8410-802bf051a007', u'rel': u'self'}, {u'href': u'http://localhost/allocations/46a62f78-21de-42a9-8410-802bf051a007', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.247815+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} GET: /allocations/46a62f78-21de-42a9-8410-802bf051a007 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'46a62f78-21de-42a9-8410-802bf051a007', u'links': [{u'href': u'http://localhost/v1/allocations/46a62f78-21de-42a9-8410-802bf051a007', u'rel': u'self'}, {u'href': u'http://localhost/allocations/46a62f78-21de-42a9-8410-802bf051a007', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.247815+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links [0.072554s] ... ok POST: /v1/allocations {'uuid': 'caef88ce-f929-4dbd-bb7e-6c2355b33d37', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': 'foo'} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular [0.040316s] ... ok PATCH: /v1/allocations/a62b6634-535b-47a7-ade8-49766e9acd20 [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-27f49b3c-2c67-4aac-8014-9e5ee2d0fbb2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Allocation a62b6634-535b-47a7-ade8-49766e9acd20 could not be found.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found [0.025937s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/caef88ce-f929-4dbd-bb7e-6c2355b33d37 Openstack-Request-Id: req-1e74aeee-d778-4715-97a9-28df8d08dc6d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "caef88ce-f929-4dbd-bb7e-6c2355b33d37", "links": [{"href": "http://localhost/v1/allocations/caef88ce-f929-4dbd-bb7e-6c2355b33d37", "rel": "self"}, {"href": "http://localhost/allocations/caef88ce-f929-4dbd-bb7e-6c2355b33d37", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:20.003356+00:00", "resource_class": "baremetal", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": [], "name": "foo"} GET: /v1/allocations/caef88ce-f929-4dbd-bb7e-6c2355b33d37 {} GOT:{u'node_uuid': None, u'uuid': u'caef88ce-f929-4dbd-bb7e-6c2355b33d37', u'links': [{u'href': u'http://localhost/v1/allocations/caef88ce-f929-4dbd-bb7e-6c2355b33d37', u'rel': u'self'}, {u'href': u'http://localhost/allocations/caef88ce-f929-4dbd-bb7e-6c2355b33d37', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:20.003356+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'foo'} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok [0.074791s] ... ok GET: /v1/allocations {} GOT:{u'allocations': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'b1dc35c7-1b3f-49b7-91a5-f7d433bcd10b', u'links': [{u'href': u'http://localhost/v1/allocations/b1dc35c7-1b3f-49b7-91a5-f7d433bcd10b', u'rel': u'self'}, {u'href': u'http://localhost/allocations/b1dc35c7-1b3f-49b7-91a5-f7d433bcd10b', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.311366+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation0'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'ad7feb98-312f-4a37-b3e5-aed02876063a', u'links': [{u'href': u'http://localhost/v1/allocations/ad7feb98-312f-4a37-b3e5-aed02876063a', u'rel': u'self'}, {u'href': u'http://localhost/allocations/ad7feb98-312f-4a37-b3e5-aed02876063a', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.313165+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation1'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'9e3d7d1b-bc61-4eef-8409-049c95e0db40', u'links': [{u'href': u'http://localhost/v1/allocations/9e3d7d1b-bc61-4eef-8409-049c95e0db40', u'rel': u'self'}, {u'href': u'http://localhost/allocations/9e3d7d1b-bc61-4eef-8409-049c95e0db40', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.314845+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation2'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'65a640fe-4cb4-4fc3-9b47-29665caa3aa7', u'links': [{u'href': u'http://localhost/v1/allocations/65a640fe-4cb4-4fc3-9b47-29665caa3aa7', u'rel': u'self'}, {u'href': u'http://localhost/allocations/65a640fe-4cb4-4fc3-9b47-29665caa3aa7', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.316528+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation3'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'4b50ce18-552b-45f8-8942-0dfa99c4a11f', u'links': [{u'href': u'http://localhost/v1/allocations/4b50ce18-552b-45f8-8942-0dfa99c4a11f', u'rel': u'self'}, {u'href': u'http://localhost/allocations/4b50ce18-552b-45f8-8942-0dfa99c4a11f', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.318197+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'allocation4'}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many [0.077139s] ... ok GET: /v1/allocations?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f53f0782-0d6e-4937-8df0-26765c532801 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\"}"} GET: /v1/allocations?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7623d1d7-1c74-4e16-aa2e-ff4933b9f027 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\"}"} GET: /v1/allocations?sort_key=internal_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9e31b574-4e88-41ba-84a7-dd905ab193f3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"internal_info\\\" is an invalid field for sorting\"}"} GET: /v1/allocations?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1bba1916-a520-4b1f-b0b3-22d8900f8437 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid [0.043482s] ... ok POST: /v1/allocations {'uuid': 'df747209-8f04-4b2f-bdf2-3621895fd667', 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-87f596ea-d4f8-42dc-acfe-157832a4b77a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute resource_class. Value: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'. Value should have a maximum character requirement of 80\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long [0.054481s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_sample [0.007840s] ... ok POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': 'f017965f-deee-41a6-b83e-925ee23fa6c5', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/f017965f-deee-41a6-b83e-925ee23fa6c5 Openstack-Request-Id: req-6842f5ad-8b27-4ac4-ba4a-2fd358c0d5de X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "f017965f-deee-41a6-b83e-925ee23fa6c5", "links": [{"href": "http://localhost/v1/allocations/f017965f-deee-41a6-b83e-925ee23fa6c5", "rel": "self"}, {"href": "http://localhost/allocations/f017965f-deee-41a6-b83e-925ee23fa6c5", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:19.966290+00:00", "resource_class": "baremetal", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/f017965f-deee-41a6-b83e-925ee23fa6c5 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'f017965f-deee-41a6-b83e-925ee23fa6c5', u'links': [{u'href': u'http://localhost/v1/allocations/f017965f-deee-41a6-b83e-925ee23fa6c5', u'rel': u'self'}, {u'href': u'http://localhost/allocations/f017965f-deee-41a6-b83e-925ee23fa6c5', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.966290+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill [0.055012s] ... ok PATCH: /v1/allocations/d37aba85-7080-4dd4-94d8-90f8cd545ef9 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-165c4ceb-a011-402b-ab8f-11e2d22087e4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot update /foo in an allocation. Only 'name' and 'extra' are allowed to be updated.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent [0.025792s] ... ok POST: /v1/allocations {'uuid': 'd7a22ee9-0ca1-48cb-9e25-91dbdf0bbd82', 'resource_class': 'baremetal', 'extra': {'foo': 123}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/d7a22ee9-0ca1-48cb-9e25-91dbdf0bbd82 Openstack-Request-Id: req-f624ce7d-b3eb-4d30-b6fc-b814020d23c5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "d7a22ee9-0ca1-48cb-9e25-91dbdf0bbd82", "links": [{"href": "http://localhost/v1/allocations/d7a22ee9-0ca1-48cb-9e25-91dbdf0bbd82", "rel": "self"}, {"href": "http://localhost/allocations/d7a22ee9-0ca1-48cb-9e25-91dbdf0bbd82", "rel": "bookmark"}], "extra": {"foo": 123}, "last_error": null, "created_at": "2019-10-11T05:54:20.011127+00:00", "resource_class": "baremetal", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/d7a22ee9-0ca1-48cb-9e25-91dbdf0bbd82 {} GOT:{u'node_uuid': None, u'uuid': u'd7a22ee9-0ca1-48cb-9e25-91dbdf0bbd82', u'links': [{u'href': u'http://localhost/v1/allocations/d7a22ee9-0ca1-48cb-9e25-91dbdf0bbd82', u'rel': u'self'}, {u'href': u'http://localhost/allocations/d7a22ee9-0ca1-48cb-9e25-91dbdf0bbd82', u'rel': u'bookmark'}], u'extra': {u'foo': 123}, u'last_error': None, u'created_at': u'2019-10-11T05:54:20.011127+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id [0.035965s] ... ok POST: /v1/allocations {'uuid': '00421657-6e4b-4a1b-a9ce-22f089312c17', 'resource_class': 'baremetal', 'extra': {}, 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'candidate_nodes': [], 'name': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-52526d4a-8fca-4830-916b-7d5bf11c42c7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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 _\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait [0.027696s] ... ok PATCH: /v1/allocations/50f5a0bc-668c-4e6e-9b08-090e116fec50 [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-03a663fc-a934-468d-9bea-5ade7ff053eb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot update allocation with invalid name '[test]'\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name [0.035625s] ... ok POST: /v1/allocations {'uuid': '95427286-c918-4e60-931c-39b156c9f01e', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': 'aa:bb_cc'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-61f1dd9f-7ec4-4ed4-a2be-41eb5860b018 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with invalid name 'aa:bb_cc'\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid [0.024064s] ... ok POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': 'd9323139-519a-4fda-9445-0fa2378c5950', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8cc729ce-73c9-4d66-b2fe-d282f4545c5c 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot set node when creating an allocation in this API version\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed [0.099005s] ... ok POST: /v1/allocations {'node': u'backfill-me', 'uuid': '0b1b7756-39a0-4a98-b1b4-6d387d0f3ec8', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/0b1b7756-39a0-4a98-b1b4-6d387d0f3ec8 Openstack-Request-Id: req-7c759ea7-5a18-47a7-a7f1-04fafed31ef0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "0b1b7756-39a0-4a98-b1b4-6d387d0f3ec8", "links": [{"href": "http://localhost/v1/allocations/0b1b7756-39a0-4a98-b1b4-6d387d0f3ec8", "rel": "self"}, {"href": "http://localhost/allocations/0b1b7756-39a0-4a98-b1b4-6d387d0f3ec8", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:19.654509+00:00", "resource_class": "baremetal", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/0b1b7756-39a0-4a98-b1b4-6d387d0f3ec8 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'0b1b7756-39a0-4a98-b1b4-6d387d0f3ec8', u'links': [{u'href': u'http://localhost/v1/allocations/0b1b7756-39a0-4a98-b1b4-6d387d0f3ec8', u'rel': u'self'}, {u'href': u'http://localhost/allocations/0b1b7756-39a0-4a98-b1b4-6d387d0f3ec8', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.654509+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name [0.115478s] ... ok POST: /v1/allocations {'uuid': 'b0dca379-7a61-4adf-89fa-493c18e4cde5', 'resource_class': 'baremetal', 'extra': {'none': None, 'int': 123, 'float': 0.1, 'list': [1, 2], 'bool': True, 'str': 'foo', 'dict': {'cat': 'meow'}}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/b0dca379-7a61-4adf-89fa-493c18e4cde5 Openstack-Request-Id: req-90daed73-f54f-459d-8dee-3f0e300bc100 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "b0dca379-7a61-4adf-89fa-493c18e4cde5", "links": [{"href": "http://localhost/v1/allocations/b0dca379-7a61-4adf-89fa-493c18e4cde5", "rel": "self"}, {"href": "http://localhost/allocations/b0dca379-7a61-4adf-89fa-493c18e4cde5", "rel": "bookmark"}], "extra": {"none": null, "int": 123, "float": 0.1, "list": [1, 2], "dict": {"cat": "meow"}, "str": "foo", "bool": true}, "last_error": null, "created_at": "2019-10-11T05:54:19.758440+00:00", "resource_class": "baremetal", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/b0dca379-7a61-4adf-89fa-493c18e4cde5 {} GOT:{u'node_uuid': None, u'uuid': u'b0dca379-7a61-4adf-89fa-493c18e4cde5', u'links': [{u'href': u'http://localhost/v1/allocations/b0dca379-7a61-4adf-89fa-493c18e4cde5', u'rel': u'self'}, {u'href': u'http://localhost/allocations/b0dca379-7a61-4adf-89fa-493c18e4cde5', u'rel': u'bookmark'}], u'extra': {u'none': None, u'int': 123, u'float': 0.1, u'list': [1, 2], u'bool': True, u'str': u'foo', u'dict': {u'cat': u'meow'}}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.758440+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra [0.083386s] ... ok GET: /v1/chassis/?limit=3 {} GOT:{u'chassis': [{u'uuid': u'63119167-f558-4994-90f8-1786a67cfba8', u'links': [{u'href': u'http://localhost/v1/chassis/63119167-f558-4994-90f8-1786a67cfba8', u'rel': u'self'}, {u'href': u'http://localhost/chassis/63119167-f558-4994-90f8-1786a67cfba8', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}, {u'uuid': u'0667e5c5-a1d8-4a53-af4d-1c894c06dcd4', u'links': [{u'href': u'http://localhost/v1/chassis/0667e5c5-a1d8-4a53-af4d-1c894c06dcd4', u'rel': u'self'}, {u'href': u'http://localhost/chassis/0667e5c5-a1d8-4a53-af4d-1c894c06dcd4', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}, {u'uuid': u'433aad65-c1de-4af3-a511-820c395ad0ed', u'links': [{u'href': u'http://localhost/v1/chassis/433aad65-c1de-4af3-a511-820c395ad0ed', u'rel': u'self'}, {u'href': u'http://localhost/chassis/433aad65-c1de-4af3-a511-820c395ad0ed', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}], u'next': u'http://localhost/v1/chassis?sort_dir=asc&sort_key=id&limit=3&marker=433aad65-c1de-4af3-a511-820c395ad0ed'} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links [0.077440s] ... ok PATCH: /v1/allocations/0173790f-5488-4065-9889-211711c70b94 [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35fd467f-6128-435a-ae5e-8179c9a3a7be X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "0173790f-5488-4065-9889-211711c70b94", "links": [{"href": "http://localhost/v1/allocations/0173790f-5488-4065-9889-211711c70b94", "rel": "self"}, {"href": "http://localhost/allocations/0173790f-5488-4065-9889-211711c70b94", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:19.043636+00:00", "resource_class": "baremetal", "updated_at": "2000-01-01T00:00:00+00:00", "traits": [], "state": "allocating", "candidate_nodes": [], "name": "test"} GET: /v1/allocations/0173790f-5488-4065-9889-211711c70b94 {} GOT:{u'node_uuid': None, u'uuid': u'0173790f-5488-4065-9889-211711c70b94', u'links': [{u'href': u'http://localhost/v1/allocations/0173790f-5488-4065-9889-211711c70b94', u'rel': u'self'}, {u'href': u'http://localhost/allocations/0173790f-5488-4065-9889-211711c70b94', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.043636+00:00', u'resource_class': u'baremetal', u'updated_at': u'2000-01-01T00:00:00+00:00', u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': u'test'} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular [0.039145s] ... ok GET: /v1/chassis?detail=True&fields=description {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-948ad4ae-6c81-41b2-89f9-98eebe4874f9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields [0.045217s] ... ok GET: /v1/chassis?fields=uuid,extra {} PATCH: /v1/allocations/533293aa-3ecf-4a2e-bf2a-6033f0f886e2 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-9b366ff4-a58c-4821-93b0-15a4f70c1841 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow updating allocations\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed [0.029130s] ... ok POST: /v1/allocations {'uuid': '02833174-f74a-46a7-bdf4-d20d4b64ebff', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [u'node-1', '480c5cee-0d19-448b-b288-dbbb71c84ecc'], 'name': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/02833174-f74a-46a7-bdf4-d20d4b64ebff Openstack-Request-Id: req-58db5103-f4e7-48df-b662-7e5feae140b7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "02833174-f74a-46a7-bdf4-d20d4b64ebff", "links": [{"href": "http://localhost/v1/allocations/02833174-f74a-46a7-bdf4-d20d4b64ebff", "rel": "self"}, {"href": "http://localhost/allocations/02833174-f74a-46a7-bdf4-d20d4b64ebff", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:20.112350+00:00", "resource_class": "baremetal", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "480c5cee-0d19-448b-b288-dbbb71c84ecc"], "name": null} GET: /v1/allocations/02833174-f74a-46a7-bdf4-d20d4b64ebff {} GOT:{u'node_uuid': None, u'uuid': u'02833174-f74a-46a7-bdf4-d20d4b64ebff', u'links': [{u'href': u'http://localhost/v1/allocations/02833174-f74a-46a7-bdf4-d20d4b64ebff', u'rel': u'self'}, {u'href': u'http://localhost/allocations/02833174-f74a-46a7-bdf4-d20d4b64ebff', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:20.112350+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'480c5cee-0d19-448b-b288-dbbb71c84ecc'], u'name': None} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes [0.046645s] ... ok POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/43a1a1f4-3685-4524-ada2-9a4a408429d5 Openstack-Request-Id: req-6f18c407-b469-4bcc-8ee3-95f9186ea2d2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "43a1a1f4-3685-4524-ada2-9a4a408429d5", "links": [{"href": "http://localhost/v1/allocations/43a1a1f4-3685-4524-ada2-9a4a408429d5", "rel": "self"}, {"href": "http://localhost/allocations/43a1a1f4-3685-4524-ada2-9a4a408429d5", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:19.136084+00:00", "resource_class": "bm-super", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/43a1a1f4-3685-4524-ada2-9a4a408429d5 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'43a1a1f4-3685-4524-ada2-9a4a408429d5', u'links': [{u'href': u'http://localhost/v1/allocations/43a1a1f4-3685-4524-ada2-9a4a408429d5', u'rel': u'self'}, {u'href': u'http://localhost/allocations/43a1a1f4-3685-4524-ada2-9a4a408429d5', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.136084+00:00', u'resource_class': u'bm-super', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid [0.060238s] ... ok POST: /v1/allocations {'uuid': '9045e4d5-1d37-4f93-9f13-91e1bc88ca7d', 'resource_class': 'baremetal', 'extra': {}, 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'candidate_nodes': [], 'name': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/9045e4d5-1d37-4f93-9f13-91e1bc88ca7d Openstack-Request-Id: req-1256a173-ef3f-4773-9e66-44950d2f6f62 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "9045e4d5-1d37-4f93-9f13-91e1bc88ca7d", "links": [{"href": "http://localhost/v1/allocations/9045e4d5-1d37-4f93-9f13-91e1bc88ca7d", "rel": "self"}, {"href": "http://localhost/allocations/9045e4d5-1d37-4f93-9f13-91e1bc88ca7d", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:19.820736+00:00", "resource_class": "baremetal", "updated_at": null, "traits": ["CUSTOM_GPU", "CUSTOM_FOO_BAR"], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/9045e4d5-1d37-4f93-9f13-91e1bc88ca7d {} GOT:{u'node_uuid': None, u'uuid': u'9045e4d5-1d37-4f93-9f13-91e1bc88ca7d', u'links': [{u'href': u'http://localhost/v1/allocations/9045e4d5-1d37-4f93-9f13-91e1bc88ca7d', u'rel': u'self'}, {u'href': u'http://localhost/allocations/9045e4d5-1d37-4f93-9f13-91e1bc88ca7d', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.820736+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [u'CUSTOM_GPU', u'CUSTOM_FOO_BAR'], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits [0.061631s] ... ok POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {'uuid': 'b471ea7f-3136-494c-93c2-d6204c4a4ea7', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"description\": \"\", \"title\": \"Method Not Allowed\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed [0.040516s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init [0.011388s] ... ok POST: /v1/allocations {'node': '35c908d6-eaff-4028-b5c0-4a38e59ade0c', 'uuid': '0c36c0a1-b404-45e8-9b32-6b8bf963ae94', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b877348c-2acc-45bc-993b-19956d6f9e6a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 35c908d6-eaff-4028-b5c0-4a38e59ade0c could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found [0.082457s] ... ok POST: /v1/allocations {'uuid': '6ff1ce62-c525-40bb-a5cf-c16d02b7145d', 'resource_class': 'baremetal', 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/6ff1ce62-c525-40bb-a5cf-c16d02b7145d Openstack-Request-Id: req-3e00c45e-3d04-4d48-847b-d7e99ac81327 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "6ff1ce62-c525-40bb-a5cf-c16d02b7145d", "links": [{"href": "http://localhost/v1/allocations/6ff1ce62-c525-40bb-a5cf-c16d02b7145d", "rel": "self"}, {"href": "http://localhost/allocations/6ff1ce62-c525-40bb-a5cf-c16d02b7145d", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:20.147117+00:00", "resource_class": "baremetal", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra [0.028206s] ... ok DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 204 No Content Openstack-Request-Id: req-335b3d03-ea37-4d94-bc7a-526b352de289 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-12381d45-9403-4590-8ddc-4d4c8354322f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Chassis e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis [0.071897s] ... ok GET: /v1/chassis?detail=True {} GOT:{u'chassis': [{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:20.165898+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query [0.033442s] ... ok DELETE: /v1/chassis/80c85b7e-e991-4da6-a8e1-357b3d2cbd0f GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-617e025f-b5ce-40f5-bf41-e52a3b9fd90e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Chassis 80c85b7e-e991-4da6-a8e1-357b3d2cbd0f could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found [0.034666s] ... ok GET: /v1/chassis?fields=extra&limit=2 {} GOT:{u'chassis': [{u'links': [{u'href': u'http://localhost/v1/chassis/8af2a75f-4850-4a09-a16f-43dda74113be', u'rel': u'self'}, {u'href': u'http://localhost/chassis/8af2a75f-4850-4a09-a16f-43dda74113be', u'rel': u'bookmark'}], u'extra': {}}, {u'links': [{u'href': u'http://localhost/v1/chassis/8c52239e-06d1-4ebf-8cd9-3c6675bfc0bd', u'rel': u'self'}, {u'href': u'http://localhost/chassis/8c52239e-06d1-4ebf-8cd9-3c6675bfc0bd', u'rel': u'bookmark'}], u'extra': {}}], u'next': u'http://localhost/v1/chassis?sort_dir=asc&sort_key=id&limit=2&marker=8c52239e-06d1-4ebf-8cd9-3c6675bfc0bd'} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid [0.030799s] ... ok POST: /v1/allocations {'uuid': '17b8cbb9-81a1-49f9-b7c1-4f5c38d4f1fa', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/17b8cbb9-81a1-49f9-b7c1-4f5c38d4f1fa Openstack-Request-Id: req-1f3d4500-1f77-4722-877f-1627d5680b04 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "17b8cbb9-81a1-49f9-b7c1-4f5c38d4f1fa", "links": [{"href": "http://localhost/v1/allocations/17b8cbb9-81a1-49f9-b7c1-4f5c38d4f1fa", "rel": "self"}, {"href": "http://localhost/allocations/17b8cbb9-81a1-49f9-b7c1-4f5c38d4f1fa", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2000-01-01T00:00:00+00:00", "resource_class": "baremetal", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/17b8cbb9-81a1-49f9-b7c1-4f5c38d4f1fa {} GOT:{u'node_uuid': None, u'uuid': u'17b8cbb9-81a1-49f9-b7c1-4f5c38d4f1fa', u'links': [{u'href': u'http://localhost/v1/allocations/17b8cbb9-81a1-49f9-b7c1-4f5c38d4f1fa', u'rel': u'self'}, {u'href': u'http://localhost/allocations/17b8cbb9-81a1-49f9-b7c1-4f5c38d4f1fa', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation [0.056453s] ... ok GET: /v1/chassis {} GOT:{u'chassis': [{u'uuid': u'683a4308-5e4e-431c-8f66-96dc95811115', u'links': [{u'href': u'http://localhost/v1/chassis/683a4308-5e4e-431c-8f66-96dc95811115', u'rel': u'self'}, {u'href': u'http://localhost/chassis/683a4308-5e4e-431c-8f66-96dc95811115', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}, {u'uuid': u'625427b6-27e9-4296-9cd1-8aca5f7287be', u'links': [{u'href': u'http://localhost/v1/chassis/625427b6-27e9-4296-9cd1-8aca5f7287be', u'rel': u'self'}, {u'href': u'http://localhost/chassis/625427b6-27e9-4296-9cd1-8aca5f7287be', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}, {u'uuid': u'bb314985-062d-4313-a998-d0d5b70347ca', u'links': [{u'href': u'http://localhost/v1/chassis/bb314985-062d-4313-a998-d0d5b70347ca', u'rel': u'self'}, {u'href': u'http://localhost/chassis/bb314985-062d-4313-a998-d0d5b70347ca', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}], u'next': u'http://localhost/v1/chassis?sort_dir=asc&sort_key=id&limit=3&marker=bb314985-062d-4313-a998-d0d5b70347ca'} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit [0.048794s] ... ok POST: /v1/allocations {'uuid': 'af61fcac-ab21-4264-a1a1-bf19d5b23801', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'name': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-80fee518-ea00-4eba-9c2f-0c6615f9a855 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found [0.041566s] ... ok GET: /v1/chassis {} GOT:{u'chassis': [{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}]} GET: /v1/chassis?detail=False {} GOT:{u'chassis': [{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false [0.046947s] ... ok GET: /v1/chassis?detail=False&fields=description {} GOT:{u'chassis': [{u'description': u'data-center-1-chassis', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}]}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields [0.043437s] ... ok GET: /v1/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c {} GOT:{u'uuid': u'67662afe-331a-4ad9-bfd6-616b926ede6c', u'links': [{u'href': u'http://foo/v1/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c', u'rel': u'self'}, {u'href': u'http://foo/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:20.235468+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://foo/v1/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c/nodes', u'rel': u'self'}, {u'href': u'http://foo/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} GET: /v1/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c {} GOT:{u'uuid': u'67662afe-331a-4ad9-bfd6-616b926ede6c', u'links': [{u'href': u'http://foo/v1/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c', u'rel': u'self'}, {u'href': u'http://foo/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:20.235468+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://foo/v1/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c/nodes', u'rel': u'self'}, {u'href': u'http://foo/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} GET: /chassis/67662afe-331a-4ad9-bfd6-616b926ede6c {} GOT:{u'uuid': u'67662afe-331a-4ad9-bfd6-616b926ede6c', u'links': [{u'href': u'http://foo/v1/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c', u'rel': u'self'}, {u'href': u'http://foo/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:20.235468+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://foo/v1/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c/nodes', u'rel': u'self'}, {u'href': u'http://foo/chassis/67662afe-331a-4ad9-bfd6-616b926ede6c/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url [0.044724s] ... ok GET: /v1/chassis?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0e6352f7-47dc-47a3-b549-c3a7db08323f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version [0.037051s] ... ok GET: /v1/chassis {} GOT:{u'chassis': []} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty [0.035715s] ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5f9eb7b7-8814-485b-a6c2-b308e67d1bd9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version [0.035139s] ... ok POST: /v1/allocations {'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/8de11b21-0512-49ed-8ece-eddda27a37f6 Openstack-Request-Id: req-11309ae3-e963-486b-b867-0dfb251d403b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": null, "uuid": "8de11b21-0512-49ed-8ece-eddda27a37f6", "links": [{"href": "http://localhost/v1/allocations/8de11b21-0512-49ed-8ece-eddda27a37f6", "rel": "self"}, {"href": "http://localhost/allocations/8de11b21-0512-49ed-8ece-eddda27a37f6", "rel": "bookmark"}], "extra": {}, "last_error": null, "created_at": "2019-10-11T05:54:19.367705+00:00", "resource_class": "baremetal", "updated_at": null, "traits": [], "state": "allocating", "candidate_nodes": [], "name": null} GET: /v1/allocations/8de11b21-0512-49ed-8ece-eddda27a37f6 {} GOT:{u'node_uuid': None, u'uuid': u'8de11b21-0512-49ed-8ece-eddda27a37f6', u'links': [{u'href': u'http://localhost/v1/allocations/8de11b21-0512-49ed-8ece-eddda27a37f6', u'rel': u'self'}, {u'href': u'http://localhost/allocations/8de11b21-0512-49ed-8ece-eddda27a37f6', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'created_at': u'2019-10-11T05:54:19.367705+00:00', u'resource_class': u'baremetal', u'updated_at': None, u'traits': [], u'state': u'allocating', u'candidate_nodes': [], u'name': None} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid [0.039684s] ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/bcb9870a-1a8e-4c7a-ac7f-cab6be3d4637', u'rel': u'self'}, {u'href': u'http://localhost/nodes/bcb9870a-1a8e-4c7a-ac7f-cab6be3d4637', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'bcb9870a-1a8e-4c7a-ac7f-cab6be3d4637'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/e1b8d522-c147-4050-b1a3-a47a761bd123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/e1b8d522-c147-4050-b1a3-a47a761bd123', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'e1b8d522-c147-4050-b1a3-a47a761bd123'}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/bcb9870a-1a8e-4c7a-ac7f-cab6be3d4637', u'rel': u'self'}, {u'href': u'http://localhost/nodes/bcb9870a-1a8e-4c7a-ac7f-cab6be3d4637', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'bcb9870a-1a8e-4c7a-ac7f-cab6be3d4637'}], u'next': u'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=1&marker=bcb9870a-1a8e-4c7a-ac7f-cab6be3d4637'} POST: /v1/allocations {'uuid': '05fa8c17-26e3-4a00-911c-976d083178c4', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-80539244-cf4e-4b15-9b16-d717a7c7bf95 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The resource_class field is mandatory when not backfilling\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class [0.023174s] ... ok POST: /v1/allocations {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '09b5da21-b3fd-43e0-92ba-209ef741266d', 'resource_class': 'baremetal', 'extra': {}, 'traits': [], 'candidate_nodes': [], 'name': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f58656bb-aab9-45a3-a185-027bfb558be8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'. Cannot set read only field.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed [0.028852s] ... ok DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-13db7268-65d7-46e5-8364-132ea1ce9073 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot complete the requested action because chassis e74c40e0-d825-11e2-a28f-0800200c9a66 contains nodes.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node [0.053043s] ... ok DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e20384d1-c019-4cb6-b840-4ccb4bcde83e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource [0.034529s] ... ok GET: /v1/chassis {} GOT:{u'chassis': [{u'uuid': u'1ce2a674-00cc-480d-be66-eb6dbdfb9ba1', u'links': [{u'href': u'http://localhost/v1/chassis/1ce2a674-00cc-480d-be66-eb6dbdfb9ba1', u'rel': u'self'}, {u'href': u'http://localhost/chassis/1ce2a674-00cc-480d-be66-eb6dbdfb9ba1', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}, {u'uuid': u'7a107a51-3fd2-4961-a390-b828cc116493', u'links': [{u'href': u'http://localhost/v1/chassis/7a107a51-3fd2-4961-a390-b828cc116493', u'rel': u'self'}, {u'href': u'http://localhost/chassis/7a107a51-3fd2-4961-a390-b828cc116493', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}, {u'uuid': u'6da2be58-3112-48c5-b6f0-3fe6521332a9', u'links': [{u'href': u'http://localhost/v1/chassis/6da2be58-3112-48c5-b6f0-3fe6521332a9', u'rel': u'self'}, {u'href': u'http://localhost/chassis/6da2be58-3112-48c5-b6f0-3fe6521332a9', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}, {u'uuid': u'433a6a50-8a17-44f9-bde4-572092e8a5ee', u'links': [{u'href': u'http://localhost/v1/chassis/433a6a50-8a17-44f9-bde4-572092e8a5ee', u'rel': u'self'}, {u'href': u'http://localhost/chassis/433a6a50-8a17-44f9-bde4-572092e8a5ee', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}, {u'uuid': u'05c7a43f-53fb-459f-9c57-396d19cf4790', u'links': [{u'href': u'http://localhost/v1/chassis/05c7a43f-53fb-459f-9c57-396d19cf4790', u'rel': u'self'}, {u'href': u'http://localhost/chassis/05c7a43f-53fb-459f-9c57-396d19cf4790', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}]} GET: /v1/chassis/detail {} GOT:{u'chassis': [{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:19.540220+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}]} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail [0.033775s] ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-29514acc-5f3e-45be-94e9-f0862d0c3eea X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single [0.024935s] ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f2645383-e951-445b-b5ae-f2138749f6dd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\"}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields [0.055573s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many [0.656524s] ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:19.681296+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one [0.063779s] ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=extra,description {} GOT:{u'description': u'data-center-1-chassis', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'extra': {}} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields [0.042346s] ... ok GOT:{u'chassis': [{u'uuid': u'01d4babe-6f58-46d2-95f2-6bf26384196a', u'links': [{u'href': u'http://localhost/v1/chassis/01d4babe-6f58-46d2-95f2-6bf26384196a', u'rel': u'self'}, {u'href': u'http://localhost/chassis/01d4babe-6f58-46d2-95f2-6bf26384196a', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'f75ff3a8-b0a2-4820-9e6d-4914f341b512', u'links': [{u'href': u'http://localhost/v1/chassis/f75ff3a8-b0a2-4820-9e6d-4914f341b512', u'rel': u'self'}, {u'href': u'http://localhost/chassis/f75ff3a8-b0a2-4820-9e6d-4914f341b512', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'beda8a74-c0a1-492e-8ccf-d57f5a274520', u'links': [{u'href': u'http://localhost/v1/chassis/beda8a74-c0a1-492e-8ccf-d57f5a274520', u'rel': u'self'}, {u'href': u'http://localhost/chassis/beda8a74-c0a1-492e-8ccf-d57f5a274520', u'rel': u'bookmark'}], u'extra': {}}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields [0.695185s] ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:20.928845+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link [0.027714s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource [0.649190s] ... ok GET: /v1/chassis {} GOT:{u'chassis': [{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one [0.037745s] ... ok 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-3c808309-63f6-44c6-9e94-46c84cd32394 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\"}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail [0.048347s] ... ok GET: /v1/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8 {} GOT:{u'uuid': u'b358c11d-9e03-46dc-96e7-9b845d16a1b8', u'links': [{u'href': u'http://localhost/v1/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8', u'rel': u'self'}, {u'href': u'http://localhost/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:19.755242+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://localhost/v1/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} GET: /v1/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8 {} GOT:{u'uuid': u'b358c11d-9e03-46dc-96e7-9b845d16a1b8', u'links': [{u'href': u'http://localhost/v1/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8', u'rel': u'self'}, {u'href': u'http://localhost/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:19.755242+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://localhost/v1/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} GET: /chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8 {} GOT:{u'uuid': u'b358c11d-9e03-46dc-96e7-9b845d16a1b8', u'links': [{u'href': u'http://localhost/v1/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8', u'rel': u'self'}, {u'href': u'http://localhost/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:19.755242+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://localhost/v1/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/b358c11d-9e03-46dc-96e7-9b845d16a1b8/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links [0.038307s] ... ok GET: /v1/chassis?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9a019c83-8d31-4daf-8b26-4afea5fcd9cc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\"}"} GET: /v1/chassis?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-490f7a8b-fa7c-47ce-9554-a959a2c0b9b1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\"}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid [0.107907s] ... ok 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-85f770ec-5910-455d-97b5-cceae5f7e0ff 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", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:19.923368+00:00", "updated_at": "2019-10-11T05:54:19.947268+00:00", "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"}], "description": "test"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root [0.083030s] ... ok 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-a6c356d5-c51b-400c-b377-05917ea8939a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource [0.045926s] ... ok 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-b6f2946c-1c2a-42a0-b021-da8a48e44812 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", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "extra": {"foo1": "bar1", "foo2": "bar2"}, "created_at": "2019-10-11T05:54:20.957188+00:00", "updated_at": "2019-10-11T05:54:20.971102+00:00", "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"}], "description": "data-center-1-chassis"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'extra': {u'foo1': u'bar1', u'foo2': u'bar2'}, u'created_at': u'2019-10-11T05:54:20.957188+00:00', u'updated_at': u'2019-10-11T05:54:20.971102+00:00', u'nodes': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi [0.038049s] ... ok 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-97062546-26de-456a-b739-87e57ebeefd0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent [0.032575s] ... ok PATCH: /v1/chassis/1a392295-77b7-418f-86eb-1e708e3e068f [{'path': '/description', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a5702691-c2d9-4c46-8ab0-0427bff25c59 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1a392295-77b7-418f-86eb-1e708e3e068f", "links": [{"href": "http://localhost/v1/chassis/1a392295-77b7-418f-86eb-1e708e3e068f", "rel": "self"}, {"href": "http://localhost/chassis/1a392295-77b7-418f-86eb-1e708e3e068f", "rel": "bookmark"}], "extra": {"a": "b"}, "created_at": "2019-10-11T05:54:21.029340+00:00", "updated_at": "2019-10-11T05:54:21.043608+00:00", "nodes": [{"href": "http://localhost/v1/chassis/1a392295-77b7-418f-86eb-1e708e3e068f/nodes", "rel": "self"}, {"href": "http://localhost/chassis/1a392295-77b7-418f-86eb-1e708e3e068f/nodes", "rel": "bookmark"}], "description": null} GET: /v1/chassis/1a392295-77b7-418f-86eb-1e708e3e068f {} GOT:{u'uuid': u'1a392295-77b7-418f-86eb-1e708e3e068f', u'links': [{u'href': u'http://localhost/v1/chassis/1a392295-77b7-418f-86eb-1e708e3e068f', u'rel': u'self'}, {u'href': u'http://localhost/chassis/1a392295-77b7-418f-86eb-1e708e3e068f', u'rel': u'bookmark'}], u'extra': {u'a': u'b'}, u'created_at': u'2019-10-11T05:54:21.029340+00:00', u'updated_at': u'2019-10-11T05:54:21.043608+00:00', u'nodes': [{u'href': u'http://localhost/v1/chassis/1a392295-77b7-418f-86eb-1e708e3e068f/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/1a392295-77b7-418f-86eb-1e708e3e068f/nodes', u'rel': u'bookmark'}], u'description': None} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular [0.040102s] ... ok PATCH: /v1/chassis/393c01d8-e583-49fd-8ba6-740e880bbfd0 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b20abbb4-0dff-44b6-aced-40cb3cdcf07a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "393c01d8-e583-49fd-8ba6-740e880bbfd0", "links": [{"href": "http://localhost/v1/chassis/393c01d8-e583-49fd-8ba6-740e880bbfd0", "rel": "self"}, {"href": "http://localhost/chassis/393c01d8-e583-49fd-8ba6-740e880bbfd0", "rel": "bookmark"}], "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "created_at": "2019-10-11T05:54:20.053924+00:00", "updated_at": "2019-10-11T05:54:20.067026+00:00", "nodes": [{"href": "http://localhost/v1/chassis/393c01d8-e583-49fd-8ba6-740e880bbfd0/nodes", "rel": "self"}, {"href": "http://localhost/chassis/393c01d8-e583-49fd-8ba6-740e880bbfd0/nodes", "rel": "bookmark"}], "description": "data-center-1-chassis"} GET: /v1/chassis/393c01d8-e583-49fd-8ba6-740e880bbfd0 {} GOT:{u'uuid': u'393c01d8-e583-49fd-8ba6-740e880bbfd0', u'links': [{u'href': u'http://localhost/v1/chassis/393c01d8-e583-49fd-8ba6-740e880bbfd0', u'rel': u'self'}, {u'href': u'http://localhost/chassis/393c01d8-e583-49fd-8ba6-740e880bbfd0', u'rel': u'bookmark'}], u'extra': {u'foo1': u'bar1', u'foo2': u'new value', u'foo3': u'bar3'}, u'created_at': u'2019-10-11T05:54:20.053924+00:00', u'updated_at': u'2019-10-11T05:54:20.067026+00:00', u'nodes': [{u'href': u'http://localhost/v1/chassis/393c01d8-e583-49fd-8ba6-740e880bbfd0/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/393c01d8-e583-49fd-8ba6-740e880bbfd0/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi [0.059463s] ... ok POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-3e77fc51-b15b-4972-889e-3bec9a4feb63 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", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "extra": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "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"}], "description": "data-center-1-chassis"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2000-01-01T00:00:00+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis [0.032511s] ... ok POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {'foo': 123}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-fe7f316a-f556-4f17-94f7-138f1f122386 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", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "extra": {"foo": 123}, "created_at": "2019-10-11T05:54:20.141797+00:00", "updated_at": null, "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"}], "description": "data-center-1-chassis"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'extra': {u'foo': 123}, u'created_at': u'2019-10-11T05:54:20.141797+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id [0.074111s] ... ok POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {'none': None, 'int': 123, 'float': 0.1, 'list': [1, 2], 'bool': True, 'str': 'foo', 'dict': {'cat': 'meow'}}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-d0e9c6e1-4364-42ed-9e47-b62a95fba8aa 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", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "extra": {"none": null, "int": 123, "float": 0.1, "list": [1, 2], "dict": {"cat": "meow"}, "str": "foo", "bool": true}, "created_at": "2019-10-11T05:54:21.110302+00:00", "updated_at": null, "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"}], "description": "data-center-1-chassis"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'extra': {u'none': None, u'int': 123, u'float': 0.1, u'list': [1, 2], u'bool': True, u'str': u'foo', u'dict': {u'cat': u'meow'}}, u'created_at': u'2019-10-11T05:54:21.110302+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra [0.032682s] ... ok GET: /v1/conductors/rocky.rocks?fields=hostname,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2cc5aa4b-2bf0-48a7-8540-7551a21ac75d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\"}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields [0.030315s] ... ok GET: /v1/conductors/rocky.rocks {} GOT:{u'links': [{u'href': u'http://localhost/v1/conductors/rocky.rocks', u'rel': u'self'}, {u'href': u'http://localhost/conductors/rocky.rocks', u'rel': u'bookmark'}], u'created_at': u'2019-10-11T05:54:21.165278+00:00', u'hostname': u'rocky.rocks', u'conductor_group': u'', u'updated_at': u'2019-10-11T05:54:21.165013+00:00', u'alive': True, u'drivers': [u'fake-driver', u'null-driver']} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one [0.028233s] ... ok POST: /v1/chassis {'description': 'data-center-1-chassis', 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/70b0d0b2-dfd3-4a08-a8e8-73d68dac0269 Openstack-Request-Id: req-ac8d137d-b126-4610-bdff-3d6b96d05467 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "70b0d0b2-dfd3-4a08-a8e8-73d68dac0269", "links": [{"href": "http://localhost/v1/chassis/70b0d0b2-dfd3-4a08-a8e8-73d68dac0269", "rel": "self"}, {"href": "http://localhost/chassis/70b0d0b2-dfd3-4a08-a8e8-73d68dac0269", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:20.198177+00:00", "updated_at": null, "nodes": [{"href": "http://localhost/v1/chassis/70b0d0b2-dfd3-4a08-a8e8-73d68dac0269/nodes", "rel": "self"}, {"href": "http://localhost/chassis/70b0d0b2-dfd3-4a08-a8e8-73d68dac0269/nodes", "rel": "bookmark"}], "description": "data-center-1-chassis"} GET: /v1/chassis {} GOT:{u'chassis': [{u'uuid': u'70b0d0b2-dfd3-4a08-a8e8-73d68dac0269', u'links': [{u'href': u'http://localhost/v1/chassis/70b0d0b2-dfd3-4a08-a8e8-73d68dac0269', u'rel': u'self'}, {u'href': u'http://localhost/chassis/70b0d0b2-dfd3-4a08-a8e8-73d68dac0269', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}]} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid [0.076530s] ... ok GET: /v1/conductors {} GOT:{u'conductors': []} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty [0.051781s] ... ok GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b8399876-cf8f-44a3-b508-82f9d4dca043 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found [0.029514s] ... ok GET: /v1/conductors/rocky.rocks {} GOT:{u'links': [{u'href': u'http://localhost/v1/conductors/rocky.rocks', u'rel': u'self'}, {u'href': u'http://localhost/conductors/rocky.rocks', u'rel': u'bookmark'}], u'created_at': u'2000-01-01T00:00:00+00:00', u'hostname': u'rocky.rocks', u'conductor_group': u'', u'updated_at': u'2000-01-01T00:00:00+00:00', u'alive': False, u'drivers': [u'fake-driver', u'null-driver']} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline [0.679991s] ... ok GET: /v1/conductors?detail=true {} GOT:{u'conductors': [{u'links': [{u'href': u'http://localhost/v1/conductors/why care', u'rel': u'self'}, {u'href': u'http://localhost/conductors/why care', u'rel': u'bookmark'}], u'created_at': u'2019-10-11T05:54:21.197107+00:00', u'hostname': u'why care', u'conductor_group': u'', u'updated_at': u'2019-10-11T05:54:21.196834+00:00', u'alive': True, u'drivers': [u'fake-driver', u'null-driver']}, {u'links': [{u'href': u'http://localhost/v1/conductors/why not', u'rel': u'self'}, {u'href': u'http://localhost/conductors/why not', u'rel': u'bookmark'}], u'created_at': u'2019-10-11T05:54:21.199393+00:00', u'hostname': u'why not', u'conductor_group': u'', u'updated_at': u'2019-10-11T05:54:21.199162+00:00', u'alive': True, u'drivers': [u'fake-driver', u'null-driver']}]} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail [0.075172s] ... ok GET: /v1/conductors/rocky.rocks?fields=hostname,alive {} GOT:{u'hostname': u'rocky.rocks', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/rocky.rocks', u'rel': u'self'}, {u'href': u'http://localhost/conductors/rocky.rocks', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields [0.067422s] ... ok DELETE: /v1/deploy_templates/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-043ce708-1b05-471a-8712-51b99c6b3f65 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Deploy template blah could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent [0.037484s] ... ok DELETE: /v1/deploy_templates/ddb63001-254a-4f5f-9b35-0bf1f76b3a4b.json GET: /v1/conductors?sort_key=hostname {} GOT:{u'conductors': [{u'hostname': u'2e79d5a5-5f09-44c2-bd04-18bf7e7c079b', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/2e79d5a5-5f09-44c2-bd04-18bf7e7c079b', u'rel': u'self'}, {u'href': u'http://localhost/conductors/2e79d5a5-5f09-44c2-bd04-18bf7e7c079b', u'rel': u'bookmark'}]}, {u'hostname': u'7857a9c9-34f8-4842-9661-07e16128d38b', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/7857a9c9-34f8-4842-9661-07e16128d38b', u'rel': u'self'}, {u'href': u'http://localhost/conductors/7857a9c9-34f8-4842-9661-07e16128d38b', u'rel': u'bookmark'}]}, {u'hostname': u'c1c5ba3a-9c5c-4cb6-ad0d-57dfcbe213fe', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/c1c5ba3a-9c5c-4cb6-ad0d-57dfcbe213fe', u'rel': u'self'}, {u'href': u'http://localhost/conductors/c1c5ba3a-9c5c-4cb6-ad0d-57dfcbe213fe', u'rel': u'bookmark'}]}, {u'hostname': u'ef487fcf-6824-4d47-b3fb-86aaf9122de6', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/ef487fcf-6824-4d47-b3fb-86aaf9122de6', u'rel': u'self'}, {u'href': u'http://localhost/conductors/ef487fcf-6824-4d47-b3fb-86aaf9122de6', u'rel': u'bookmark'}]}, {u'hostname': u'f7f9ccab-af19-49f8-a759-f7389c8d8f7f', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/f7f9ccab-af19-49f8-a759-f7389c8d8f7f', u'rel': u'self'}, {u'href': u'http://localhost/conductors/f7f9ccab-af19-49f8-a759-f7389c8d8f7f', u'rel': u'bookmark'}]}]} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key [0.127345s] ... ok DELETE: /v1/deploy_templates/CUSTOM_DT1.json GOT:Response: 204 No Content Openstack-Request-Id: req-55f3296c-645b-4ebc-b659-34089d7ddce8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json [0.059442s] ... ok DELETE: /v1/deploy_templates/5b6cdf1c-7196-4509-b62e-d39b194f8228 GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"description\": \"The API version does not allow deploy templates\", \"title\": \"Method Not Allowed\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version [0.057539s] ... ok 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-b960c5d6-fc16-4872-a019-952195e302ce X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\"}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid [0.055688s] ... ok GOT:Response: 204 No Content Openstack-Request-Id: req-e00618ab-6a29-4db7-8014-dd5e5fc93681 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json [0.076252s] ... ok 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-f5baef2a-c1d7-424e-95db-cf55218d6c48 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", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:21.088584+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "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"}], "description": "chassis-new-description"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.088584+00:00', u'updated_at': u'2000-01-01T00:00:00+00:00', u'nodes': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'bookmark'}], u'description': u'chassis-new-description'} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular [0.100314s] ... ok POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-214e51bc-0940-49dc-b17a-be81acca0176 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error [0.083683s] ... ok GET: /v1/deploy_templates {} GOT:{u'deploy_templates': [{u'uuid': u'0240015d-83df-463b-94a2-cbdfdacbb6a5', u'links': [{u'href': u'http://localhost/v1/deploy_templates/0240015d-83df-463b-94a2-cbdfdacbb6a5', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/0240015d-83df-463b-94a2-cbdfdacbb6a5', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT0'}, {u'uuid': u'679268e2-4d66-4c48-9286-b6a34ce3551c', u'links': [{u'href': u'http://localhost/v1/deploy_templates/679268e2-4d66-4c48-9286-b6a34ce3551c', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/679268e2-4d66-4c48-9286-b6a34ce3551c', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT1'}, {u'uuid': u'1c4a7012-a1db-4738-bd44-dac38b0979fe', u'links': [{u'href': u'http://localhost/v1/deploy_templates/1c4a7012-a1db-4738-bd44-dac38b0979fe', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/1c4a7012-a1db-4738-bd44-dac38b0979fe', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT2'}], u'next': u'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&limit=3&marker=1c4a7012-a1db-4738-bd44-dac38b0979fe'} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit [0.074294s] ... ok POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d478e7cf-f3f4-4653-b7c3-53b26ad91272 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute description. Value: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'. Value should have a maximum character requirement of 255\"}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description [0.083981s] ... ok POST: /v1/chassis/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-55d91a4b-bdd3-417d-89a6-0931610c0093 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource [0.030078s] ... ok GET: /v1/conductors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f033990a-c0d9-4308-b36f-dd251657828f 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api [0.024081s] ... ok DELETE: /v1/deploy_templates/CUSTOM_DT1 DELETE: /v1/deploy_templates/CUSTOM_DT1 GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"description\": \"The API version does not allow deploy templates\", \"title\": \"Method Not Allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version [0.042509s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDeployTemplateObject.test_deploy_template_init [0.008443s] ... ok GET: /v1/deploy_templates?detail=True {} GOT:Response: 204 No Content Openstack-Request-Id: req-b55cd767-6720-412f-9145-1898a1dffd1a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name [0.049448s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDeployTemplateObject.test_deploy_template_sample [0.018917s] ... ok GET: /v1/chassis/nodes {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cc5a0183-2c44-4eba-a36e-3d171c503070 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Chassis id not specified.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid [0.027496s] ... ok GET: /v1/deploy_templates {} GOT:{u'deploy_templates': [{u'uuid': u'4da27509-47fb-4ad0-80f0-25a9df74b8ae', u'links': [{u'href': u'http://localhost/v1/deploy_templates/4da27509-47fb-4ad0-80f0-25a9df74b8ae', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/4da27509-47fb-4ad0-80f0-25a9df74b8ae', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.398932+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1'}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query [0.108095s] ... ok GOT:{u'deploy_templates': [{u'uuid': u'163c6203-b723-4854-9753-0d92d7bd5e51', u'links': [{u'href': u'http://localhost/v1/deploy_templates/163c6203-b723-4854-9753-0d92d7bd5e51', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/163c6203-b723-4854-9753-0d92d7bd5e51', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT1'}]}GET: /v1/deploy_templates?detail=True&fields=name {} GET: /v1/deploy_templates?detail=False {} GOT:{u'deploy_templates': [{u'uuid': u'163c6203-b723-4854-9753-0d92d7bd5e51', u'links': [{u'href': u'http://localhost/v1/deploy_templates/163c6203-b723-4854-9753-0d92d7bd5e51', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/163c6203-b723-4854-9753-0d92d7bd5e51', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT1'}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false [0.070852s] ... ok GET: /v1/chassis?sort_key=uuid {} GOT:{u'chassis': [{u'uuid': u'112924e6-608d-4385-bfac-45c1e679dc7f', u'links': [{u'href': u'http://localhost/v1/chassis/112924e6-608d-4385-bfac-45c1e679dc7f', u'rel': u'self'}, {u'href': u'http://localhost/chassis/112924e6-608d-4385-bfac-45c1e679dc7f', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}, {u'uuid': u'cec997dc-cda5-4b01-a334-99abef91d69b', u'links': [{u'href': u'http://localhost/v1/chassis/cec997dc-cda5-4b01-a334-99abef91d69b', u'rel': u'self'}, {u'href': u'http://localhost/chassis/cec997dc-cda5-4b01-a334-99abef91d69b', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}, {u'uuid': u'f71151f5-b736-4a1a-8c92-c97cc7556b57', u'links': [{u'href': u'http://localhost/v1/chassis/f71151f5-b736-4a1a-8c92-c97cc7556b57', u'rel': u'self'}, {u'href': u'http://localhost/chassis/f71151f5-b736-4a1a-8c92-c97cc7556b57', u'rel': u'bookmark'}], u'description': u'data-center-1-chassis'}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key [0.035620s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dfe4f6c2-862d-4b5c-a0c6-c2bfe1724807 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields [0.034399s] ... ok GET: /v1/deploy_templates/6bb3c8fd-50a6-4c93-ad92-526cee786367?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-29a94582-089d-4673-9470-382212691bef X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields [0.034657s] ... ok GET: /v1/deploy_templates/?limit=3 {} GOT:{u'deploy_templates': [{u'uuid': u'5f0f72e0-382c-4fa2-adcb-5d1b374a1569', u'links': [{u'href': u'http://localhost/v1/deploy_templates/5f0f72e0-382c-4fa2-adcb-5d1b374a1569', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/5f0f72e0-382c-4fa2-adcb-5d1b374a1569', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT0'}, {u'uuid': u'3f098ade-8b83-4a63-8555-0bf8fd02d1b2', u'links': [{u'href': u'http://localhost/v1/deploy_templates/3f098ade-8b83-4a63-8555-0bf8fd02d1b2', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/3f098ade-8b83-4a63-8555-0bf8fd02d1b2', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT1'}, {u'uuid': u'513836fb-5e1d-4f16-9984-e936a888696e', u'links': [{u'href': u'http://localhost/v1/deploy_templates/513836fb-5e1d-4f16-9984-e936a888696e', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/513836fb-5e1d-4f16-9984-e936a888696e', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT2'}], u'next': u'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&limit=3&marker=513836fb-5e1d-4f16-9984-e936a888696e'} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links [0.051252s] ... ok GET: /v1/deploy_templates {} GOT:{u'deploy_templates': []} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty [0.033601s] ... ok GET: /v1/deploy_templates {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"The API version does not allow deploy templates\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version [0.030352s] ... ok GET: /v1/deploy_templates/cbedd397-401a-47e0-ace4-0feebce4ad56?fields=name,steps {} GOT:{u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1', u'links': [{u'href': u'http://localhost/v1/deploy_templates/cbedd397-401a-47e0-ace4-0feebce4ad56', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/cbedd397-401a-47e0-ace4-0feebce4ad56', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields [0.035920s] ... ok GET: /v1/deploy_templates/63624fb6-c9c5-4973-bae8-7309c139af90 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"The API version does not allow deploy templates\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version [0.018860s] ... ok GET: /v1/deploy_templates?fields=uuid,steps {} GET: /v1/deploy_templates/dca25299-81fa-410a-b2f3-154be0521dc9 {} GOT:{u'uuid': u'dca25299-81fa-410a-b2f3-154be0521dc9', u'links': [{u'href': u'http://localhost/v1/deploy_templates/dca25299-81fa-410a-b2f3-154be0521dc9', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/dca25299-81fa-410a-b2f3-154be0521dc9', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.557357+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1'} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one [0.039349s] ... ok GET: /v1/deploy_templates {} GOT:{u'deploy_templates': [{u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'uuid': u'c77c25ff-139c-49cd-8097-4e5aa13e004d', u'links': [{u'href': u'http://localhost/v1/deploy_templates/c77c25ff-139c-49cd-8097-4e5aa13e004d', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/c77c25ff-139c-49cd-8097-4e5aa13e004d', u'rel': u'bookmark'}]}, {u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'uuid': u'53004610-30cf-499b-a286-a14b27e90f68', u'links': [{u'href': u'http://localhost/v1/deploy_templates/53004610-30cf-499b-a286-a14b27e90f68', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/53004610-30cf-499b-a286-a14b27e90f68', u'rel': u'bookmark'}]}, {u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'uuid': u'0f1320b6-51e2-4c00-a9f4-ca154c2255ec', u'links': [{u'href': u'http://localhost/v1/deploy_templates/0f1320b6-51e2-4c00-a9f4-ca154c2255ec', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/0f1320b6-51e2-4c00-a9f4-ca154c2255ec', u'rel': u'bookmark'}]}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields [0.061729s] ... ok GET: /v1/deploy_templates {} GET: /v1/deploy_templates/ff6501e1-665a-4f78-9aac-cb9aa704371c.json {} GOT:{u'uuid': u'ff6501e1-665a-4f78-9aac-cb9aa704371c', u'links': [{u'href': u'http://localhost/v1/deploy_templates/ff6501e1-665a-4f78-9aac-cb9aa704371c', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/ff6501e1-665a-4f78-9aac-cb9aa704371c', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.570311+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1'} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json [0.035780s] ... ok PATCH: /v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6 [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6eae1617-d7c1-40a0-b232-d2da4f29baad X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "b7789a57-6fcb-4182-bb6d-06df2dcbb8b6", "links": [{"href": "http://localhost/v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6", "rel": "self"}, {"href": "http://localhost/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6", "rel": "bookmark"}], "extra": {"foo1": "bar1", "foo3": "bar3"}, "created_at": "2019-10-11T05:54:21.016767+00:00", "updated_at": "2019-10-11T05:54:21.031469+00:00", "nodes": [{"href": "http://localhost/v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6/nodes", "rel": "bookmark"}], "description": "foobar"} GET: /v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6 {} GOT:{u'uuid': u'b7789a57-6fcb-4182-bb6d-06df2dcbb8b6', u'links': [{u'href': u'http://localhost/v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6', u'rel': u'self'}, {u'href': u'http://localhost/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6', u'rel': u'bookmark'}], u'extra': {u'foo1': u'bar1', u'foo3': u'bar3'}, u'created_at': u'2019-10-11T05:54:21.016767+00:00', u'updated_at': u'2019-10-11T05:54:21.031469+00:00', u'nodes': [{u'href': u'http://localhost/v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6/nodes', u'rel': u'bookmark'}], u'description': u'foobar'} PATCH: /v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b319000c-aa20-4d33-bf60-4738d31a01e7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "b7789a57-6fcb-4182-bb6d-06df2dcbb8b6", "links": [{"href": "http://localhost/v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6", "rel": "self"}, {"href": "http://localhost/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:21.016767+00:00", "updated_at": "2019-10-11T05:54:21.047843+00:00", "nodes": [{"href": "http://localhost/v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6/nodes", "rel": "bookmark"}], "description": "foobar"} GET: /v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6 {} GOT:{u'uuid': u'b7789a57-6fcb-4182-bb6d-06df2dcbb8b6', u'links': [{u'href': u'http://localhost/v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6', u'rel': u'self'}, {u'href': u'http://localhost/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.016767+00:00', u'updated_at': u'2019-10-11T05:54:21.047843+00:00', u'nodes': [{u'href': u'http://localhost/v1/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/b7789a57-6fcb-4182-bb6d-06df2dcbb8b6/nodes', u'rel': u'bookmark'}], u'description': u'foobar'} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi [0.063526s] ... ok 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-86bf799a-179c-4a20-a539-4ebd8121f3ed X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error [0.031754s] ... ok GOT:{u'deploy_templates': [{u'uuid': u'ceed9a92-41a5-4bfc-b921-47215ff7b582', u'links': [{u'href': u'http://localhost/v1/deploy_templates/ceed9a92-41a5-4bfc-b921-47215ff7b582', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/ceed9a92-41a5-4bfc-b921-47215ff7b582', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT1'}]}PATCH: /v1/chassis/4ccffb0c-d1aa-4f38-b8c9-c44d7974dede [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-60ba1346-ac72-4635-b6ce-24237d8b3e2d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Chassis 4ccffb0c-d1aa-4f38-b8c9-c44d7974dede could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found [0.036588s] ... ok POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 1334, 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9642892f-370f-46bc-bf58-c8e3fcf1a330 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute description. Value: '1334'. Value should be string\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description [0.023188s] ... ok GOT:{u'deploy_templates': [{u'uuid': u'04e3b9cd-d018-4524-af03-ae7a50dd7133', u'links': [{u'href': u'http://localhost/v1/deploy_templates/04e3b9cd-d018-4524-af03-ae7a50dd7133', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/04e3b9cd-d018-4524-af03-ae7a50dd7133', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT0'}, {u'uuid': u'bc23ef47-3afb-4f6a-9c29-dfab5c4f8d3e', u'links': [{u'href': u'http://localhost/v1/deploy_templates/bc23ef47-3afb-4f6a-9c29-dfab5c4f8d3e', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/bc23ef47-3afb-4f6a-9c29-dfab5c4f8d3e', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT1'}, {u'uuid': u'a9000abb-bc36-4e2b-8419-af57619281cf', u'links': [{u'href': u'http://localhost/v1/deploy_templates/a9000abb-bc36-4e2b-8419-af57619281cf', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/a9000abb-bc36-4e2b-8419-af57619281cf', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT2'}, {u'uuid': u'4ed5fa1b-6e63-4afb-83ee-391e6bf2cc23', u'links': [{u'href': u'http://localhost/v1/deploy_templates/4ed5fa1b-6e63-4afb-83ee-391e6bf2cc23', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/4ed5fa1b-6e63-4afb-83ee-391e6bf2cc23', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT3'}, {u'uuid': u'cc1cacbe-4b69-43ce-98ca-7bd7cbc36ea6', u'links': [{u'href': u'http://localhost/v1/deploy_templates/cc1cacbe-4b69-43ce-98ca-7bd7cbc36ea6', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/cc1cacbe-4b69-43ce-98ca-7bd7cbc36ea6', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT4'}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many [0.052266s] ... ok GET: /v1/deploy_templates/8c0e5bf4-10e6-4613-9c7f-e74f7d077dba {} GOT:{u'uuid': u'8c0e5bf4-10e6-4613-9c7f-e74f7d077dba', u'links': [{u'href': u'http://localhost/v1/deploy_templates/8c0e5bf4-10e6-4613-9c7f-e74f7d077dba', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/8c0e5bf4-10e6-4613-9c7f-e74f7d077dba', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.643839+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'password': u'******', u'logical_disks': []}}], u'name': u'CUSTOM_DT1'} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked [0.030985s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one [0.070301s] ... ok POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': u'\u0430\u043c\u043e', 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-bd7a0542-97f4-4770-980c-c21af3e5ced4 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", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:21.173670+00:00", "updated_at": null, "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"}], "description": "\u0430\u043c\u043e"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{u'uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'links': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.173670+00:00', u'updated_at': None, u'nodes': [{u'href': u'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'self'}, {u'href': u'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', u'rel': u'bookmark'}], u'description': u'\u0430\u043c\u043e'} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.031926s] ... ok GET: /v1/deploy_templates?sort_key=name&detail=False {} GOT:{u'deploy_templates': [{u'uuid': u'25ce8f0a-4e72-4f53-a227-828c27a0bcb9', u'links': [{u'href': u'http://localhost/v1/deploy_templates/25ce8f0a-4e72-4f53-a227-828c27a0bcb9', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/25ce8f0a-4e72-4f53-a227-828c27a0bcb9', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT1'}, {u'uuid': u'63acc591-5f73-4aba-8674-992edbbc0108', u'links': [{u'href': u'http://localhost/v1/deploy_templates/63acc591-5f73-4aba-8674-992edbbc0108', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/63acc591-5f73-4aba-8674-992edbbc0108', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT2'}, {u'uuid': u'0ef63362-f52f-4237-89bd-e3449184b157', u'links': [{u'href': u'http://localhost/v1/deploy_templates/0ef63362-f52f-4237-89bd-e3449184b157', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/0ef63362-f52f-4237-89bd-e3449184b157', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT3'}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed [0.056696s] ... ok GET: /v1/deploy_templates/c8b76711-4d27-46a6-9ac3-1baa9d09e6f5 {} GOT:{u'uuid': u'c8b76711-4d27-46a6-9ac3-1baa9d09e6f5', u'links': [{u'href': u'http://localhost/v1/deploy_templates/c8b76711-4d27-46a6-9ac3-1baa9d09e6f5', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/c8b76711-4d27-46a6-9ac3-1baa9d09e6f5', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.603040+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1'} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix [0.030240s] ... ok GET: /v1/deploy_templates?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b3e37dff-c51b-4ade-a01d-24b54188db94 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\"}"} GET: /v1/deploy_templates?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6d90b324-2b45-48fc-b3ac-94519db87be2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\"}"} GET: /v1/deploy_templates?sort_key=steps {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c8efd6f5-fbd1-4fb6-b92f-bc71b457a68f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid [0.036889s] ... ok PATCH: /v1/deploy_templates/0ad75d2e-7bc2-465d-9341-0b4cfa7419f8 [{'path': '/steps/1', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fca73a8e-f463-4171-8a88-2a6d45cbccaa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove non-existent object '1'\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail [0.036143s] ... ok PATCH: /v1/deploy_templates/be219a88-f3ed-4570-8f93-d6278cefefbf [{'path': '/steps/0', 'value': {'interface': 'raid', 'priority': 10, 'step': 'create_configuration0', 'args': {}}, 'op': 'add'}, {'path': '/steps/1', 'value': {'interface': 'raid', 'priority': 10, 'step': 'create_configuration1', 'args': {}}, 'op': 'add'}, {'path': '/steps/2', 'value': {'interface': 'raid', 'priority': 10, 'step': 'create_configuration2', 'args': {}}, 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-afa43a85-43d9-4181-be94-401a6ccfd425 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "be219a88-f3ed-4570-8f93-d6278cefefbf", "links": [{"href": "http://localhost/v1/deploy_templates/be219a88-f3ed-4570-8f93-d6278cefefbf", "rel": "self"}, {"href": "http://localhost/deploy_templates/be219a88-f3ed-4570-8f93-d6278cefefbf", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:21.731797+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 10, "step": "create_configuration0", "args": {}}, {"interface": "raid", "priority": 10, "step": "create_configuration1", "args": {}}, {"interface": "raid", "priority": 10, "step": "create_configuration2", "args": {}}, {"interface": "raid", "priority": 10, "step": "create_configuration", "args": {"logical_disks": []}}], "name": "CUSTOM_DT1"} PATCH: /v1/deploy_templates/a9f41f59-3bc9-4a4f-bbf2-bfeb93f1513e [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"description\": \"The API version does not allow deploy templates\", \"title\": \"Method Not Allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version [0.021206s] ... ok PATCH: /v1/deploy_templates/CUSTOM_DT1.json [{'path': '/steps/0/interface', 'value': 'bios', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-81f2ad94-32c1-4108-a093-044b437f654c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "9b770dd1-7125-43b1-a5db-991f37ef9ec5", "links": [{"href": "http://localhost/v1/deploy_templates/9b770dd1-7125-43b1-a5db-991f37ef9ec5", "rel": "self"}, {"href": "http://localhost/deploy_templates/9b770dd1-7125-43b1-a5db-991f37ef9ec5", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:21.808181+00:00", "updated_at": null, "steps": [{"interface": "bios", "priority": 10, "step": "create_configuration", "args": {"logical_disks": []}}], "name": "CUSTOM_DT1"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json [0.045272s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi [0.048376s] ... ok GET: /v1/deploy_templates/5fec5661-5aed-4996-96c8-c2caa919816b {} GOT:{u'uuid': u'5fec5661-5aed-4996-96c8-c2caa919816b', u'links': [{u'href': u'http://localhost/v1/deploy_templates/5fec5661-5aed-4996-96c8-c2caa919816b', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/5fec5661-5aed-4996-96c8-c2caa919816b', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.639852+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1'} GET: /v1/deploy_templates/5fec5661-5aed-4996-96c8-c2caa919816b {} GOT:{u'uuid': u'5fec5661-5aed-4996-96c8-c2caa919816b', u'links': [{u'href': u'http://localhost/v1/deploy_templates/5fec5661-5aed-4996-96c8-c2caa919816b', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/5fec5661-5aed-4996-96c8-c2caa919816b', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.639852+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1'} GET: /deploy_templates/5fec5661-5aed-4996-96c8-c2caa919816b {} GOT:{u'uuid': u'5fec5661-5aed-4996-96c8-c2caa919816b', u'links': [{u'href': u'http://localhost/v1/deploy_templates/5fec5661-5aed-4996-96c8-c2caa919816b', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/5fec5661-5aed-4996-96c8-c2caa919816b', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.639852+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1'} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links [0.052381s] ... ok PATCH: /v1/deploy_templates/d04db3d4-7fb1-4d5e-9bff-eeb7eb38a093 [{'path': '/steps/2', 'value': {'interface': 'bios', 'priority': 42, 'step': 'apply_configuration', 'args': {'foo': 'bar'}}, 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-57884e9f-768e-47ce-b683-3c12f8f0bbc0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/2', 'value': {'interface': 'bios', 'priority': 42, 'step': 'apply_configuration', 'args': {'foo': 'bar'}}, 'op': 'add'}'. Reason: can't insert outside of list\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail [0.037070s] ... ok GET: /v1/conductors/?limit=3 {} GOT:{u'conductors': [{u'hostname': u'5839362d-7b26-4bd4-a89c-96292dc03f9a', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/5839362d-7b26-4bd4-a89c-96292dc03f9a', u'rel': u'self'}, {u'href': u'http://localhost/conductors/5839362d-7b26-4bd4-a89c-96292dc03f9a', u'rel': u'bookmark'}]}, {u'hostname': u'7d4b11fc-cd6f-4c91-baab-8fd222c56f8f', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/7d4b11fc-cd6f-4c91-baab-8fd222c56f8f', u'rel': u'self'}, {u'href': u'http://localhost/conductors/7d4b11fc-cd6f-4c91-baab-8fd222c56f8f', u'rel': u'bookmark'}]}, {u'hostname': u'200eb2de-e671-489e-9184-7fcb347d986d', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/200eb2de-e671-489e-9184-7fcb347d986d', u'rel': u'self'}, {u'href': u'http://localhost/conductors/200eb2de-e671-489e-9184-7fcb347d986d', u'rel': u'bookmark'}]}], u'next': u'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&limit=3&marker=200eb2de-e671-489e-9184-7fcb347d986d'} {3} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links [0.041835s] ... ok PATCH: /v1/deploy_templates/7821734e-1f3d-401e-9c8f-f8e591c896c4 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d812f100-ddb0-4442-837b-7c9b7f0b914a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent [0.040492s] ... ok PATCH: /v1/deploy_templates/1f37e415-5ede-4447-be1c-8d3aa526bc6c [{'path': '/name', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6edfe0a9-800a-4588-93b5-a247cbcea4bf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/name' is a mandatory attribute and can not be removed\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name [0.037098s] ... ok PATCH: /v1/deploy_templates/0561f2dd-058c-4cb7-af4f-5cf48c949577 [{'path': '/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d64da377-46f7-4dbd-b1c6-4493c2cb0800 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail [0.035142s] ... ok GET: /v1/conductors {} GOT:{u'conductors': [{u'hostname': u'cca81be2-3d4f-4a02-9812-dbe94739fc86', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/cca81be2-3d4f-4a02-9812-dbe94739fc86', u'rel': u'self'}, {u'href': u'http://localhost/conductors/cca81be2-3d4f-4a02-9812-dbe94739fc86', u'rel': u'bookmark'}]}, {u'hostname': u'5778df76-021f-49dc-9d19-b31eb147f54d', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/5778df76-021f-49dc-9d19-b31eb147f54d', u'rel': u'self'}, {u'href': u'http://localhost/conductors/5778df76-021f-49dc-9d19-b31eb147f54d', u'rel': u'bookmark'}]}, {u'hostname': u'38397881-d3e1-425a-8b36-3891a327ebbb', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/38397881-d3e1-425a-8b36-3891a327ebbb', u'rel': u'self'}, {u'href': u'http://localhost/conductors/38397881-d3e1-425a-8b36-3891a327ebbb', u'rel': u'bookmark'}]}], u'next': u'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&limit=3&marker=38397881-d3e1-425a-8b36-3891a327ebbb'} {3} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit [0.040141s] ... ok PATCH: /v1/deploy_templates/8f2124e8-57c2-4cfe-bf0a-0597576d0d1f [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5a337df8-0a7b-4abc-bec7-daeeeabe8449 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail [0.031590s] ... ok GET: /v1/conductors?fields=hostname,alive {} GOT:{u'conductors': [{u'hostname': u'rocky.rocks', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/rocky.rocks', u'rel': u'self'}, {u'href': u'http://localhost/conductors/rocky.rocks', u'rel': u'bookmark'}]}, {u'hostname': u'stein.rocks', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/stein.rocks', u'rel': u'self'}, {u'href': u'http://localhost/conductors/stein.rocks', u'rel': u'bookmark'}]}]} {3} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields [0.057049s] ... ok GET: /v1/conductors/rocky.rocks {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-75589052-ff79-4dfb-b61f-bcf4cff41863 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api [0.042737s] ... ok PATCH: /v1/deploy_templates/11b80063-8540-4023-a1d0-3fb203f64ec0 [{'path': '/steps', 'value': [{'interface': 'raid', 'priority': 0, 'step': 'create_configuration', 'args': {'foo': '0'}}, {'interface': 'raid', 'priority': 1, 'step': 'create_configuration', 'args': {'foo': '1'}}], 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ce3801b3-d052-4e69-bdad-0b75f5e3ddbd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step [0.031963s] ... ok PATCH: /v1/deploy_templates/cfa3bf6c-9a9a-474c-a2a9-3904174b3f99 [{'path': '/steps', 'value': [], 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e499396a-dd36-4f94-b292-4367880f1ce9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: No deploy steps specified. A deploy template must have at least one deploy step..\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail [0.031492s] ... ok GET: /v1/conductors/rocky.rocks {} GOT:{u'links': [{u'href': u'http://localhost/v1/conductors/rocky.rocks', u'rel': u'self'}, {u'href': u'http://localhost/conductors/rocky.rocks', u'rel': u'bookmark'}], u'created_at': u'2019-10-11T05:54:21.393634+00:00', u'hostname': u'rocky.rocks', u'conductor_group': u'', u'updated_at': u'2019-10-11T05:54:21.393055+00:00', u'alive': True, u'drivers': [u'fake-driver', u'null-driver']} GET: /v1/conductors/rocky.rocks {} GOT:{u'links': [{u'href': u'http://localhost/v1/conductors/rocky.rocks', u'rel': u'self'}, {u'href': u'http://localhost/conductors/rocky.rocks', u'rel': u'bookmark'}], u'created_at': u'2019-10-11T05:54:21.393634+00:00', u'hostname': u'rocky.rocks', u'conductor_group': u'', u'updated_at': u'2019-10-11T05:54:21.393055+00:00', u'alive': True, u'drivers': [u'fake-driver', u'null-driver']} GET: /conductors/rocky.rocks {} GOT:{u'links': [{u'href': u'http://localhost/v1/conductors/rocky.rocks', u'rel': u'self'}, {u'href': u'http://localhost/conductors/rocky.rocks', u'rel': u'bookmark'}], u'created_at': u'2019-10-11T05:54:21.393634+00:00', u'hostname': u'rocky.rocks', u'conductor_group': u'', u'updated_at': u'2019-10-11T05:54:21.393055+00:00', u'alive': True, u'drivers': [u'fake-driver', u'null-driver']} {3} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links [0.059273s] ... ok PATCH: /v1/deploy_templates/cc99920c-20f8-417b-a63f-08065f2330e2 [{'path': '/steps/0', 'value': {'interface': 'raid', 'priority': 11, 'step': 'create_configuration0', 'args': {}}, 'op': 'replace'}, {'path': '/steps/1', 'value': {'interface': 'raid', 'priority': 11, 'step': 'create_configuration1', 'args': {}}, 'op': 'replace'}, {'path': '/steps/2', 'value': {'interface': 'raid', 'priority': 11, 'step': 'create_configuration2', 'args': {}}, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfa3a5a5-71cb-49a9-8ea9-1aaa477a221b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "cc99920c-20f8-417b-a63f-08065f2330e2", "links": [{"href": "http://localhost/v1/deploy_templates/cc99920c-20f8-417b-a63f-08065f2330e2", "rel": "self"}, {"href": "http://localhost/deploy_templates/cc99920c-20f8-417b-a63f-08065f2330e2", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:21.961457+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 11, "step": "create_configuration0", "args": {}}, {"interface": "raid", "priority": 11, "step": "create_configuration1", "args": {}}, {"interface": "raid", "priority": 11, "step": "create_configuration2", "args": {}}], "name": "CUSTOM_DT2"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi [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, \"description\": \"The API version does not allow deploy templates\", \"title\": \"Method Not Allowed\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version [0.032606s] ... ok GET: /v1/conductors/rocky.rocks {} GOT:{u'links': [{u'href': u'http://foo/v1/conductors/rocky.rocks', u'rel': u'self'}, {u'href': u'http://foo/conductors/rocky.rocks', u'rel': u'bookmark'}], u'created_at': u'2019-10-11T05:54:21.441027+00:00', u'hostname': u'rocky.rocks', u'conductor_group': u'', u'updated_at': u'2019-10-11T05:54:21.440710+00:00', u'alive': True, u'drivers': [u'fake-driver', u'null-driver']} GET: /v1/conductors/rocky.rocks {} GOT:{u'links': [{u'href': u'http://foo/v1/conductors/rocky.rocks', u'rel': u'self'}, {u'href': u'http://foo/conductors/rocky.rocks', u'rel': u'bookmark'}], u'created_at': u'2019-10-11T05:54:21.441027+00:00', u'hostname': u'rocky.rocks', u'conductor_group': u'', u'updated_at': u'2019-10-11T05:54:21.440710+00:00', u'alive': True, u'drivers': [u'fake-driver', u'null-driver']} GET: /conductors/rocky.rocks {} GOT:{u'links': [{u'href': u'http://foo/v1/conductors/rocky.rocks', u'rel': u'self'}, {u'href': u'http://foo/conductors/rocky.rocks', u'rel': u'bookmark'}], u'created_at': u'2019-10-11T05:54:21.441027+00:00', u'hostname': u'rocky.rocks', u'conductor_group': u'', u'updated_at': u'2019-10-11T05:54:21.440710+00:00', u'alive': True, u'drivers': [u'fake-driver', u'null-driver']} {3} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url [0.047470s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '2f847203-fb72-440c-8e9e-d02229d13020', 'name': u'CUSTOM_DT1'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/2f847203-fb72-440c-8e9e-d02229d13020 Openstack-Request-Id: req-0d1be5f8-341f-47f1-96d7-55e99c3d9719 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "2f847203-fb72-440c-8e9e-d02229d13020", "links": [{"href": "http://localhost/v1/deploy_templates/2f847203-fb72-440c-8e9e-d02229d13020", "rel": "self"}, {"href": "http://localhost/deploy_templates/2f847203-fb72-440c-8e9e-d02229d13020", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:22.057257+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 10, "step": "create_configuration", "args": {"logical_disks": []}}], "name": "CUSTOM_DT1"} GET: /v1/deploy_templates/2f847203-fb72-440c-8e9e-d02229d13020 {} GOT:{u'uuid': u'2f847203-fb72-440c-8e9e-d02229d13020', u'links': [{u'href': u'http://localhost/v1/deploy_templates/2f847203-fb72-440c-8e9e-d02229d13020', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/2f847203-fb72-440c-8e9e-d02229d13020', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:22.057257+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1'} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id [0.047928s] ... ok GET: /v1/conductors {} GOT:{u'conductors': [{u'hostname': u'why care', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/why care', u'rel': u'self'}, {u'href': u'http://localhost/conductors/why care', u'rel': u'bookmark'}]}, {u'hostname': u'why not', u'conductor_group': u'', u'alive': True, u'links': [{u'href': u'http://localhost/v1/conductors/why not', u'rel': u'self'}, {u'href': u'http://localhost/conductors/why not', u'rel': u'bookmark'}]}]} {3} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list [0.033048s] ... ok PATCH: /v1/deploy_templates/4edb7928-df75-4360-b62a-a4e2df4c8035 [{'path': '/steps', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-12a45eb2-a97f-437f-8881-0619e87b7f33 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/steps' is a mandatory attribute and can not be removed\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps [0.030947s] ... ok PATCH: /v1/deploy_templates/7e712e55-c912-4fad-be2d-46d8735eb717 [{'path': '/name', 'value': None, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-04fa90e8-0650-4ddf-87bc-3c27cf11dac2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Deploy template name cannot be None.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none [0.037142s] ... ok PATCH: /v1/deploy_templates/51b7d7d4-15d2-4f78-9de9-ff0b894ef095 [{'path': '/name', 'value': 'not-a-trait', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-aa3d6521-3c60-4ef3-9b60-920a19694d15 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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 _\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait [0.035429s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [], 'uuid': '2352f428-5982-4957-bef3-77a32864b506', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4e98e734-8f64-493f-9858-b8f7375977d7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: No deploy steps specified. A deploy template must have at least one deploy step..\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps [0.056796s] ... ok GET: /v1/conductors?sort_key=alive {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-faebfdfe-663e-4550-b07a-97efa93328be X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value alive is an invalid field for sorting\"}"} GET: /v1/conductors?sort_key=drivers {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eb00b667-545c-41cd-bf56-7a19bf6598ec X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value drivers is an invalid field for sorting\"}"} {3} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid [0.037545s] ... ok DELETE: /v1/deploy_templates/969c389a-7ac4-4c25-9c30-418e765afab0 GOT:Response: 204 No Content Openstack-Request-Id: req-fe1ac65d-b413-41c9-a814-aacbfacd26e3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid [0.068688s] ... ok PATCH: /v1/deploy_templates/6b6d181f-0708-456f-9bd2-41a23a4f9aec [{'path': '/name', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-03b0a387-a4fe-461e-9f78-62f6d2140074 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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 _\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long [0.031886s] ... ok PATCH: /v1/deploy_templates/fed6c100-204d-4a1a-847d-9a5505e2b6e5 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4b9cedf9-b69d-4f48-83a7-82c826fc40d3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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 _\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name [0.048380s] ... ok POST: /v1/deploy_templates {'extra': 42, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '3f6d3ba1-6e8b-468c-954c-abc305d4544f', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-61d7796b-1de8-4695-b452-f28ed6fb18f7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '3f6d3ba1-6e8b-468c-954c-abc305d4544f', 'name': 'CUSTOM_DT1', 'extra': 42}'. Value not a valid dict: 42\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra [0.043614s] ... ok PATCH: /v1/deploy_templates/d139f873-78a9-4aaf-956a-07046673566a [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c28c4ef4-75d8-4947-b9da-2c4f589eb73c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "d139f873-78a9-4aaf-956a-07046673566a", "links": [{"href": "http://localhost/v1/deploy_templates/d139f873-78a9-4aaf-956a-07046673566a", "rel": "self"}, {"href": "http://localhost/deploy_templates/d139f873-78a9-4aaf-956a-07046673566a", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:21.892071+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 10, "step": "create_configuration", "args": {"logical_disks": []}}], "name": "CUSTOM_DT2"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait [0.045832s] ... ok PATCH: /v1/deploy_templates/543d44d1-dc5b-4f08-931e-d72283a5edf4 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-918ffac4-4a69-4d88-9e6b-ef75f83f656a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Deploy template 543d44d1-dc5b-4f08-931e-d72283a5edf4 could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found [0.086231s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '19d73acb-733c-4d22-8c8b-a118ade4fc29', 'name': u'CUSTOM_DT1'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/19d73acb-733c-4d22-8c8b-a118ade4fc29 Openstack-Request-Id: req-cbf3d68e-3265-45f4-bb15-54e2c0fea06a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "19d73acb-733c-4d22-8c8b-a118ade4fc29", "links": [{"href": "http://localhost/v1/deploy_templates/19d73acb-733c-4d22-8c8b-a118ade4fc29", "rel": "self"}, {"href": "http://localhost/deploy_templates/19d73acb-733c-4d22-8c8b-a118ade4fc29", "rel": "bookmark"}], "extra": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 10, "step": "create_configuration", "args": {"logical_disks": []}}], "name": "CUSTOM_DT1"} GET: /v1/deploy_templates/19d73acb-733c-4d22-8c8b-a118ade4fc29 {} GOT:{u'uuid': u'19d73acb-733c-4d22-8c8b-a118ade4fc29', u'links': [{u'href': u'http://localhost/v1/deploy_templates/19d73acb-733c-4d22-8c8b-a118ade4fc29', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/19d73acb-733c-4d22-8c8b-a118ade4fc29', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2000-01-01T00:00:00+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1'} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create [0.055714s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': 'a17d12fd-baef-49a6-be01-dd98b3bee9de', 'name': u'CUSTOM_DT1'} GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"description\": \"The API version does not allow deploy templates\", \"title\": \"Method Not Allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version [0.016503s] ... ok PATCH: /v1/deploy_templates/9af40246-d824-427b-bb28-6e02253c9b51 [{'path': '/steps/0', 'value': {'interface': 'foo', 'priority': 42, 'step': 'apply_configuration', 'args': {'foo': 'bar'}}, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2d746f46-9f28-4b34-b779-bae13feb02ba X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'foo'. Value should be one of: bios, management, raid, power, deploy\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail [0.032233s] ... ok PATCH: /v1/deploy_templates/5f39956e-5fc6-4aef-88c1-95fc4be9b2d2 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e7195b79-0e12-4f6d-9929-86f4cef2520e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"A deploy template with UUID 5f39956e-5fc6-4aef-88c1-95fc4be9b2d2 already exists.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist [0.064580s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': {}, 'uuid': 'e401b4ee-e41e-41e6-9dd3-5efa28e458ac', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-117c9d87-4a86-4b05-adb6-9f54b10ebd29 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'steps': {}, 'uuid': 'e401b4ee-e41e-41e6-9dd3-5efa28e458ac', 'name': 'CUSTOM_DT1', 'extra': {}}'. Value not a valid list: {}\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps [0.024459s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': []}], 'uuid': '7021597b-5acc-4a04-b682-aa361e10a660', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c9de547e-310d-4c3c-bce4-069d04ee94f2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': []}], 'uuid': '7021597b-5acc-4a04-b682-aa361e10a660', 'name': 'CUSTOM_DT1', 'extra': {}}'. Value not a valid dict: []\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 [0.028634s] ... ok PATCH: /v1/deploy_templates/8c0528d7-16fd-4959-a703-355096283e97 [{'path': '/steps/1', 'value': {'interface': 'bios', 'priority': 42, 'step': 'apply_configuration', 'args': {'foo': 'bar'}}, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a90e8d55-3ae4-424d-9d5b-69f1415e9e3c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'value': {'interface': 'bios', 'priority': 42, 'step': 'apply_configuration', 'args': {'foo': 'bar'}}, 'op': 'replace'}'. Reason: list assignment index out of range\"}"} POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': -1, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '0588b927-b3e8-4a62-8688-c9762fa11bb6', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-029bbcf1-4298-4d9e-bf96-97e877a93454 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute priority. Value: '-1'. Value should be greater or equal to 0\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority [0.091094s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail [0.097267s] ... ok GET: /v1/deploy_templates?sort_key=name&detail=True {} GOT:{u'deploy_templates': [{u'uuid': u'95cea7ff-8c85-47f7-a5f3-a0329f075943', u'links': [{u'href': u'http://localhost/v1/deploy_templates/95cea7ff-8c85-47f7-a5f3-a0329f075943', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/95cea7ff-8c85-47f7-a5f3-a0329f075943', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.632744+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1'}, {u'uuid': u'9a61bb73-f2de-4250-a663-57ce0b8acfce', u'links': [{u'href': u'http://localhost/v1/deploy_templates/9a61bb73-f2de-4250-a663-57ce0b8acfce', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/9a61bb73-f2de-4250-a663-57ce0b8acfce', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.630342+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT2'}, {u'uuid': u'906a8cef-8ebc-44c4-bad6-220ec57aab77', u'links': [{u'href': u'http://localhost/v1/deploy_templates/906a8cef-8ebc-44c4-bad6-220ec57aab77', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/906a8cef-8ebc-44c4-bad6-220ec57aab77', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:21.627726+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT3'}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed [0.041534s] ... ok PATCH: /v1/deploy_templates/a0727591-f7c7-4490-8708-c697ea190166 [{'path': '/steps/0/interface', 'value': 'foo', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8702e3d2-6092-43e2-8a80-0e1f7cb6afdc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'foo'. Value should be one of: bios, management, raid, power, deploy\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface [0.059810s] ... ok GET: /v1/deploy_templates?detail=False&fields=steps {} GOT:{u'deploy_templates': [{u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'links': [{u'href': u'http://localhost/v1/deploy_templates/000dce4d-c53b-4be4-bab0-bc3db7bd7749', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/000dce4d-c53b-4be4-bab0-bc3db7bd7749', u'rel': u'bookmark'}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields [0.049748s] ... ok GET: /v1/deploy_templates?fields=name&limit=2 {} GOT:{u'deploy_templates': [{u'name': u'CUSTOM_DT0', u'links': [{u'href': u'http://localhost/v1/deploy_templates/dbc47915-1788-423a-b35a-31084c8887f9', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/dbc47915-1788-423a-b35a-31084c8887f9', u'rel': u'bookmark'}]}, {u'name': u'CUSTOM_DT1', u'links': [{u'href': u'http://localhost/v1/deploy_templates/6958f275-533c-4c0a-87f1-fced085b458d', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/6958f275-533c-4c0a-87f1-fced085b458d', u'rel': u'bookmark'}]}], u'next': u'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&limit=2&marker=6958f275-533c-4c0a-87f1-fced085b458d'} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid [0.060207s] ... ok PATCH: /v1/deploy_templates/CUSTOM_DT1 [{'path': '/steps', 'value': [{'interface': 'bios', 'priority': 42, 'step': 'apply_configuration', 'args': {'foo': 'bar'}}], 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da26a16e-7919-45c0-bc41-c26707ec0820 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "bb0a51ac-de72-43cc-b4c5-b1fb34b17ab3", "links": [{"href": "http://localhost/v1/deploy_templates/bb0a51ac-de72-43cc-b4c5-b1fb34b17ab3", "rel": "self"}, {"href": "http://localhost/deploy_templates/bb0a51ac-de72-43cc-b4c5-b1fb34b17ab3", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:22.158538+00:00", "updated_at": null, "steps": [{"interface": "bios", "priority": 42, "step": "apply_configuration", "args": {"foo": "bar"}}], "name": "CUSTOM_DT1"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name [0.066294s] ... ok GET: /v1/deploy_templates?sort_key=uuid {} GOT:{u'deploy_templates': [{u'uuid': u'8e116741-6688-4eae-becc-38bf044008fd', u'links': [{u'href': u'http://localhost/v1/deploy_templates/8e116741-6688-4eae-becc-38bf044008fd', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/8e116741-6688-4eae-becc-38bf044008fd', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT2'}, {u'uuid': u'9ddf05ee-580a-400b-a552-26547529b93e', u'links': [{u'href': u'http://localhost/v1/deploy_templates/9ddf05ee-580a-400b-a552-26547529b93e', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/9ddf05ee-580a-400b-a552-26547529b93e', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT0'}, {u'uuid': u'bf0d4bc4-a47e-43b0-b219-2aabe7ff988a', u'links': [{u'href': u'http://localhost/v1/deploy_templates/bf0d4bc4-a47e-43b0-b219-2aabe7ff988a', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/bf0d4bc4-a47e-43b0-b219-2aabe7ff988a', u'rel': u'bookmark'}], u'name': u'CUSTOM_DT1'}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key [0.049238s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'foo': 'bar'}], 'uuid': 'df8ce827-3bd0-40d1-8548-d722eaf4f07c', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ebf7a4f5-b41d-4b34-91cb-a433f1668ddf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument template.steps: foo\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo [0.023534s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 'not a number', 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '3e6df0fc-2e1a-40dc-b494-d977455ce92d', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c79db0d7-59f6-4f9e-8d74-0ab82421d041 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'steps': [{'priority': 'not a number', 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '3e6df0fc-2e1a-40dc-b494-d977455ce92d', 'name': 'CUSTOM_DT1', 'extra': {}}'. invalid literal for int() with base 10: 'not a number'\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority [0.049856s] ... ok PATCH: /v1/deploy_templates/81b9dcb0-6990-4072-b4e3-0236b8b268ea [{'path': '/foo', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5f70c8f0-c7ed-4d1e-b19a-06f67cbc633b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/foo', 'op': 'remove'}'. Reason: can't remove non-existent object 'foo'\"}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo [0.042874s] ... ok PATCH: /v1/deploy_templates/e7338ae9-b735-4847-8c9f-9ab85dd48e2c [{'path': '/steps/1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fabcfb67-c911-49ea-be39-c81c3e09f4ca X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "e7338ae9-b735-4847-8c9f-9ab85dd48e2c", "links": [{"href": "http://localhost/v1/deploy_templates/e7338ae9-b735-4847-8c9f-9ab85dd48e2c", "rel": "self"}, {"href": "http://localhost/deploy_templates/e7338ae9-b735-4847-8c9f-9ab85dd48e2c", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:21.887110+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 10, "step": "create_configuration0", "args": {}}, {"interface": "raid", "priority": 10, "step": "create_configuration2", "args": {}}], "name": "CUSTOM_DT2"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi [0.048997s] ... ok PATCH: /v1/deploy_templates/9b5887a8-dbb6-4e7b-8c9f-08c5108878f1 [{'path': '/steps/0', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-26d2d1ed-494a-415a-adf6-8803c687fa6a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: No deploy steps specified. A deploy template must have at least one deploy step..\"}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail [0.042506s] ... ok PATCH: /v1/deploy_templates/c2d418dc-048e-4607-91e5-7ff3ab25112a [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5a5a1ab1-5961-44c5-a31c-198313b2c88b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\"}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid [0.044021s] ... ok PATCH: /v1/deploy_templates/4183a7de-bc44-4a54-bb12-91480623c155 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b2916529-282e-4320-9939-4c549f10288e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "4183a7de-bc44-4a54-bb12-91480623c155", "links": [{"href": "http://localhost/v1/deploy_templates/4183a7de-bc44-4a54-bb12-91480623c155", "rel": "self"}, {"href": "http://localhost/deploy_templates/4183a7de-bc44-4a54-bb12-91480623c155", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:22.008270+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 10, "step": "create_configuration", "args": {"logical_disks": []}}], "name": "CUSTOM_DT2"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id [0.041685s] ... ok PATCH: /v1/deploy_templates/1ce714ee-c905-46de-aad7-4ee0ad193895 [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d2fb6388-382f-44de-8007-cf80343f4598 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1ce714ee-c905-46de-aad7-4ee0ad193895", "links": [{"href": "http://localhost/v1/deploy_templates/1ce714ee-c905-46de-aad7-4ee0ad193895", "rel": "self"}, {"href": "http://localhost/deploy_templates/1ce714ee-c905-46de-aad7-4ee0ad193895", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:22.072519+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 10, "step": "create_configuration", "args": {"logical_disks": []}}], "name": "HW_CPU_X86_VMX"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait [0.058695s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'name': u'CUSTOM_DT1'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/43dcff75-8da9-4d7d-9739-cd4f9e3c4870 Openstack-Request-Id: req-4247e498-f0a1-4a52-9608-9a7301fb5a82 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "43dcff75-8da9-4d7d-9739-cd4f9e3c4870", "links": [{"href": "http://localhost/v1/deploy_templates/43dcff75-8da9-4d7d-9739-cd4f9e3c4870", "rel": "self"}, {"href": "http://localhost/deploy_templates/43dcff75-8da9-4d7d-9739-cd4f9e3c4870", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:22.319519+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 10, "step": "create_configuration", "args": {"logical_disks": []}}], "name": "CUSTOM_DT1"} GET: /v1/deploy_templates/43dcff75-8da9-4d7d-9739-cd4f9e3c4870 {} GOT:{u'uuid': u'43dcff75-8da9-4d7d-9739-cd4f9e3c4870', u'links': [{u'href': u'http://localhost/v1/deploy_templates/43dcff75-8da9-4d7d-9739-cd4f9e3c4870', u'rel': u'self'}, {u'href': u'http://localhost/deploy_templates/43dcff75-8da9-4d7d-9739-cd4f9e3c4870', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:22.319519+00:00', u'updated_at': None, u'steps': [{u'interface': u'raid', u'priority': 10, u'step': u'create_configuration', u'args': {u'logical_disks': []}}], u'name': u'CUSTOM_DT1'} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid [0.153224s] ... ok POST: /v1/deploy_templates {'foo': 'bar', 'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': 'd07ac500-853f-4eb5-a847-896de5b6a621', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9ae8c2bb-2d96-46a3-a534-c6e40524f3ac X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument template: foo\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo [0.043449s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '1a75ed55-778f-4551-9cda-915c16a55e06', 'name': 42} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9594316e-bc9c-4d60-89cf-5d3e37ed003b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute name. Value: '42'. Wrong type. Expected '', got ''\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name [0.125956s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict'}], 'uuid': '8a2904da-90af-49c8-b6bd-540a9ca0108f', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2d95292f-41bd-4c69-8735-219df9813621 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict'}], 'uuid': '8a2904da-90af-49c8-b6bd-540a9ca0108f', 'name': 'CUSTOM_DT1', 'extra': {}}'. Value not a valid dict: not a dict\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 [0.054096s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': [{'bar': 'baz'}]}}], 'uuid': '8e33fd44-76a6-4058-a089-194f4d26384a', 'name': u'CUSTOM_DT1'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/8e33fd44-76a6-4058-a089-194f4d26384a Openstack-Request-Id: req-b735858e-1ca2-4907-99ac-b73ef37427d2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "8e33fd44-76a6-4058-a089-194f4d26384a", "links": [{"href": "http://localhost/v1/deploy_templates/8e33fd44-76a6-4058-a089-194f4d26384a", "rel": "self"}, {"href": "http://localhost/deploy_templates/8e33fd44-76a6-4058-a089-194f4d26384a", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:22.118746+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 10, "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}}], "name": "CUSTOM_DT1"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args [0.028020s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '5bfb9e8b-72a0-481e-ac6f-d3bb6c57a788', 'name': u'CUSTOM_DT1'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-7d32248c-9fbc-4e47-b938-570065cd186e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error [0.027419s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '04cc02bb-5c50-4ca4-8d2a-260de127202d', 'name': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1cf146f3-f047-42c0-a309-df6ab45f2796 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Deploy template name cannot be None.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none [0.033205s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '85b4bf5d-5c34-4bd9-8a6c-79e466fcd508', 'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/85b4bf5d-5c34-4bd9-8a6c-79e466fcd508 Openstack-Request-Id: req-e0c771c4-234c-48d3-9300-c3a4c0b1b857 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "85b4bf5d-5c34-4bd9-8a6c-79e466fcd508", "links": [{"href": "http://localhost/v1/deploy_templates/85b4bf5d-5c34-4bd9-8a6c-79e466fcd508", "rel": "self"}, {"href": "http://localhost/deploy_templates/85b4bf5d-5c34-4bd9-8a6c-79e466fcd508", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:22.215078+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 10, "step": "create_configuration", "args": {"logical_disks": []}}], "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name [0.049091s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': '42', 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '61ef89a4-f6ab-4355-854a-5b7b708dcf77', 'name': u'CUSTOM_DT1'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/61ef89a4-f6ab-4355-854a-5b7b708dcf77 Openstack-Request-Id: req-10dd2e25-40e7-4e8f-9753-d6b7b3262664 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "61ef89a4-f6ab-4355-854a-5b7b708dcf77", "links": [{"href": "http://localhost/v1/deploy_templates/61ef89a4-f6ab-4355-854a-5b7b708dcf77", "rel": "self"}, {"href": "http://localhost/deploy_templates/61ef89a4-f6ab-4355-854a-5b7b708dcf77", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:22.260648+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 42, "step": "create_configuration", "args": {"logical_disks": []}}], "name": "CUSTOM_DT1"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority [0.030982s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': [3], 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '8c77be9d-b41d-4ff8-86c2-bc55f7221257', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-836cf941-e1e0-494b-b7bb-32399411d38e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: '[3]'. unhashable type: 'list'\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 [0.044075s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}}], 'uuid': '7ddaa069-df41-4ca6-9806-bf57af3f03a9', 'name': u'CUSTOM_DT1'} POST: /v1/deploy_templates {'extra': {}, 'steps': [{'interface': 'raid', 'priority': 0, 'step': 'create_configuration', 'args': {'foo': '0'}}, {'interface': 'raid', 'priority': 1, 'step': 'create_configuration', 'args': {'foo': '1'}}], 'uuid': 'f5ed8a54-13a0-4e5e-8d67-c18727a64a54', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-18c3c78c-a64a-4731-9edd-555e5cce0e55 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate [0.070595s] ... ok GET: /v1/drivers/driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2135a6a6-9ad9-48f4-8dbf-74c486c0b8c2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load [0.051994s] ... ok GET: /v1/drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}], u'properties': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type/properties', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type/properties', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version [0.124239s] ... ok GET: /v1/drivers/nope {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e3c1e4a1-c0aa-4be0-8440-5753deee7fd6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): nope.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found [0.058719s] ... ok GET: /v1/drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links [0.099866s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration'}], 'uuid': '2490d5fb-86ea-47f2-86b0-4e530b22061a', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b8e27282-530d-45f5-9aab-c9a852b834bd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute args. Value: 'None'. Mandatory field missing.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args [0.043823s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': 'bd8ffcae-1944-43ac-8185-f3890d33a085', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4708d0a8-cec1-44c3-ad98-f6cc1e209327 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute priority. Value: 'None'. Mandatory field missing.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority [0.049004s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'args': {'logical_disks': []}}], 'uuid': 'd02ebe34-754d-4a49-ad9c-b39b5c92c4fb', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2a9c1cb4-3300-4ba8-91af-5dd15fcfe8dc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute step. Value: 'None'. Mandatory field missing.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step [0.126463s] ... ok GET: /v1/drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version [0.079441s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c6fef0bc-76e4-4d81-b7e2-da8b93b3ed5b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute step. Value: '42'. Wrong type. Expected '', got ''\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step [0.043705s] ... ok GET: /v1/drivers/fake-hardware-type {} POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'foo', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '68c80693-9ea6-48ce-940d-5cda50deb384', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7525b7b5-b607-4cdf-9d67-9b382f02075e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'foo'. Value should be one of: bios, management, raid, power, deploy\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 [0.074845s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '0107b20e-d2df-452e-af89-ef343f356aee', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0e721d02-fe5c-4ca8-bfac-a428d180b1d7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'None'. Mandatory field missing.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface [0.023818s] ... ok GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://foo/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://foo/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://foo/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://foo/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type {} DELETE: /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-390355cd-1691-4cb6-9c21-0a2bd8cc2f59 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete [0.083693s] ... ok 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-db54e4c4-c31c-4c18-ace1-211830acc4ac X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found [0.033484s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '80686990-fdfb-4db8-8b33-85c5da5973e6', 'name': 'HW_CPU_X86_VMX'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/80686990-fdfb-4db8-8b33-85c5da5973e6 Openstack-Request-Id: req-30bc8363-e899-4a6b-81ae-3dd6cdddf0e3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "80686990-fdfb-4db8-8b33-85c5da5973e6", "links": [{"href": "http://localhost/v1/deploy_templates/80686990-fdfb-4db8-8b33-85c5da5973e6", "rel": "self"}, {"href": "http://localhost/deploy_templates/80686990-fdfb-4db8-8b33-85c5da5973e6", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:22.331680+00:00", "updated_at": null, "steps": [{"interface": "raid", "priority": 10, "step": "create_configuration", "args": {"logical_disks": []}}], "name": "HW_CPU_X86_VMX"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name [0.077459s] ... ok GET: /v1/drivers/manual-management/properties {} GOT:{u'prop1': u'Property 1. Required.'} GET: /v1/drivers/manual-management/properties {} GOT:{u'prop1': u'Property 1. Required.'} GET: /v1/drivers/manual-management/properties {} GOT:{u'prop1': u'Property 1. Required.'} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached [0.042743s] ... ok GET: /v1/drivers/test/properties {} GOT:{u'prop1': u'Property 1. Required.'} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake [0.023398s] ... ok GET: /v1/drivers/manual-management/properties {} GOT:{u'prop1': u'Property 1. Required.'} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type [0.023970s] ... ok 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-d77f73d9-f864-418e-8fd2-fc5fac349265 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found [0.098531s] ... ok GET: /v1/drivers?detail=True {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f1a8ebff-be18-482c-af58-dad0fa98e56c 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\"}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version [0.022961s] ... ok GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://foo/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://foo/drivers/fake-hardware-type', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url [0.114130s] ... ok GET: /v1/drivers?detail=False {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-574c84b2-cedc-4489-9009-a30adf77ccd3 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\"}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false [0.028026s] ... ok POST: /v1/events {'events': [{'event': 'valid.event'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{u'default_inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}], u'enabled_raid_interfaces': [], u'enabled_management_interfaces': [], u'enabled_deploy_interfaces': [u'iscsi', u'direct'], u'default_boot_interface': None, u'default_raid_interface': None, u'default_power_interface': None, u'enabled_network_interfaces': [], u'default_management_interface': None, u'enabled_power_interfaces': [], u'default_vendor_interface': None, u'default_network_interface': None, u'enabled_boot_interfaces': [], u'enabled_inspect_interfaces': [], u'enabled_console_interfaces': [], u'properties': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type/properties', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type/properties', u'rel': u'bookmark'}], u'name': u'fake-hardware-type', u'default_console_interface': None, u'type': u'dynamic', u'default_deploy_interface': u'direct', u'enabled_vendor_interfaces': [], u'hosts': [u'fake-host1', u'fake-host2']} GET: /v1/drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /v1/drivers/fake-hardware-type/properties {} GOT:{} GET: /drivers/fake-hardware-type/properties {} GOT:{} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces [0.069913s] ... ok GET: /v1/drivers?type=classic {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d3df3c27-aa31-40e1-a18f-f630bd7e6947 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\"}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version [0.023340s] ... ok GET: /v1/drivers?type=classic {} GOT:{u'drivers': []} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic [0.041519s] ... ok GET: /v1/drivers?type=dynamic {} GOT:{u'drivers': [{u'hosts': [u'fake-host1', u'fake-host2'], u'type': u'dynamic', u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}], u'properties': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type/properties', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type/properties', u'rel': u'bookmark'}]}, {u'hosts': [u'fake-host1'], u'type': u'dynamic', u'name': u'fake-hardware-type-2', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}], u'properties': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2/properties', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2/properties', u'rel': u'bookmark'}]}]} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic [0.035736s] ... ok GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c8ac290c-777d-43e6-baa5-b20754731b23 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\"}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported [0.042483s] ... ok POST: /v1/events {'events': [{'event': 'valid.event'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-057249bf-9d4d-4209-8137-5aa1cc5a6894 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events [0.022538s] ... ok POST: /v1/events {'events': [{'event': 'valid.event1'}, {'event': 'valid.event2'}, {'event': 'valid.event3'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-a857ab04-322a-4bf8-a545-2f47f7572d81 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events [0.022340s] ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b04e99fa-f96d-420e-984e-8d81b01cc1a2 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version [0.062863s] ... ok POST: /v1/events {'events': [{'status': 'ACTIVE', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal', 'mac_address': 'de:ad:ca:fe:ba:be', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'event': 'network.bind_port', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555'}]} POST: /v1/events {'events': [{'status': 'ACTIVE', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal', 'mac_address': 'INVALID_MAC_ADDRESS', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'event': 'network.bind_port', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4a446467-e972-4253-b7f5-3950f04f0601 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Event validation failure for mac_address. Expected a MAC address but received INVALID_MAC_ADDRESS.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address [0.031626s] ... ok POST: /v1/events {'events': [{'status': 'ACTIVE', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal', 'mac_address': 'de:ad:ca:fe:ba:be', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'event': 'network.unbind_port', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-22abcf32-d590-4658-8bd7-0fc1099daa71 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events [0.022959s] ... ok GOT:Response: 204 No Content Openstack-Request-Id: req-a04c43e7-5a1f-4f17-94e2-c29a37e6705a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events [0.039988s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': 'ea0daf7b-f4ec-4c8e-b327-dac5f375c775', 'name': 'not-a-trait'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8eecd742-b24f-4849-8a1e-1747c6d573ee X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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 _\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait [0.068037s] ... ok 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-913c5093-f8aa-4688-9030-6e517b11b8e9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put [0.089820s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': '27474a21-6d39-4f7e-a565-c1d38e14d0a0', 'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c834bd7f-a507-40e6-a93d-582cced10ebd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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 _\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long [0.028816s] ... ok POST: /v1/deploy_templates {'extra': {}, 'steps': [{'priority': 10, 'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'uuid': 'e7c1975e-540f-4810-8523-e2e82f940b26'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b28b7bc9-517f-4f05-875a-958760a92bae X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute name. Value: 'None'. Mandatory field missing.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name [0.023389s] ... ok 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-7efcc134-1e61-43e4-b797-a68f4f881a78 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"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync [0.103467s] ... ok POST: /v1/deploy_templates {'extra': {}, 'uuid': '9235e6b5-d3f8-4141-810d-b53c80c2909c', 'name': u'CUSTOM_DT1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e55c4a32-b9f8-4caa-be70-5c7f13475ada X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute steps. Value: 'None'. Mandatory field missing.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps [0.027181s] ... ok GET: /v1/drivers/bad_driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b8581df6-bd45-4259-926a-a186013ae729 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): bad_driver.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name [0.023109s] ... ok 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-0805b2a2-21fe-4fb3-9165-e50b8ac9f673 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_driver.TestListDrivers.test_driver_vendor_passthru_async [0.046823s] ... ok GET: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {} GOT:foo {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get [0.038146s] ... ok GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} {1} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_chassis_api_policy [0.030113s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_conductor_api_policy [0.024746s] ... ok POST: /v1/events {'events': [{'status': 'ACTIVE', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal', 'mac_address': 'de:ad:ca:fe:ba:be', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'event': 'network.delete_port', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-4395bf85-decc-46ca-8aba-421fb9ce22f6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events [0.022559s] ... ok GET: /v1/drivers/fake-hardware-type {} GOT:{u'foo': u'bar'} GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} GOT:{u'foo': u'bar'} {1} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_ramdisk_api_policy [0.029810s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods [0.046225s] ... ok GOT:{u'enabled_rescue_interfaces': [], u'default_inspect_interface': None, u'default_storage_interface': None, u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}], u'default_rescue_interface': None, u'enabled_raid_interfaces': [], u'enabled_management_interfaces': [], u'enabled_bios_interfaces': [], u'enabled_deploy_interfaces': [u'iscsi', u'direct'], u'default_boot_interface': None, u'default_bios_interface': None, u'default_raid_interface': None, u'default_power_interface': None, u'enabled_network_interfaces': [], u'default_management_interface': None, u'hosts': [u'fake-host1', u'fake-host2'], u'enabled_storage_interfaces': [], u'default_vendor_interface': None, u'default_network_interface': None, u'enabled_boot_interfaces': [], u'enabled_inspect_interfaces': [], u'enabled_console_interfaces': [], u'properties': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type/properties', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type/properties', u'rel': u'bookmark'}], u'name': u'fake-hardware-type', u'default_console_interface': None, u'type': u'dynamic', u'default_deploy_interface': u'direct', u'enabled_vendor_interfaces': [], u'enabled_power_interfaces': []} GET: /v1/drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /v1/drivers/fake-hardware-type/properties {} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '0300042f-378d-4f50-99a6-5b53f32cd1bf'} GOT:Response: 204 No Content Openstack-Request-Id: req-c5e4b495-c709-4ee7-8671-a553e58a2e14 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach [0.036002s] ... ok GOT:{} GET: /drivers/fake-hardware-type/properties {} GOT:{} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces [0.114633s] ... ok POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '05f781c6-fa61-4cdc-be9a-f68c01b2e964'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-f8f00602-e129-4048-ae05-12f0fd2bbdda 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked [0.029525s] ... ok GET: /v1/drivers {} GOT:{u'drivers': [{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]}, {u'hosts': [u'fake-host1'], u'name': u'fake-hardware-type-2', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}]}]} GET: /v1/drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{u'hosts': [u'fake-host1'], u'name': u'fake-hardware-type-2', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{u'hosts': [u'fake-host1'], u'name': u'fake-hardware-type-2', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers [0.061670s] ... ok GET: /v1/drivers {} GOT:{u'drivers': []} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor [0.027585s] ... ok POST: /v1/events {'events': [{'status': 'ACTIVE', 'binding:host_id': ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'], 'binding:vnic_type': 'baremetal', 'mac_address': 'de:ad:ca:fe:ba:be', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'event': 'network.bind_port', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a0458db5-1547-4c0e-b736-16e43d4b428f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute events. Value: '[{'status': 'ACTIVE', 'binding:host_id': ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'], 'binding:vnic_type': 'baremetal', 'mac_address': 'de:ad:ca:fe:ba:be', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'event': 'network.bind_port', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555'}]'. Wrong type. Expected '', got ''\"}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id [0.069335s] ... ok POST: /v1/nodes/doesntexist/vifs {'id': 'b2653154-b030-4368-a717-814ba1ff7f4f'} POST: /v1/events {'events': [{'status': 'ACTIVE', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal', 'mac_address': 'de:ad:ca:fe:ba:be', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'event': 'network.bind_port', 'device_id': 'DEVICE_ID_SHOULD_BE_UUID'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-35dd98e0-b60a-404f-933f-4cbdd901df7a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Event validation failure for device_id. Expected a UUID but received DEVICE_ID_SHOULD_BE_UUID.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id [0.043210s] ... ok POST: /v1/events {'events': [{'status': ['status', 'SHOULD', 'BE', 'TEXT'], 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal', 'mac_address': 'de:ad:ca:fe:ba:be', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'event': 'network.bind_port', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-aa3cefed-b785-4bbe-8881-2d90a18893f4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute events. Value: '[{'status': ['status', 'SHOULD', 'BE', 'TEXT'], 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal', 'mac_address': 'de:ad:ca:fe:ba:be', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'event': 'network.bind_port', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555'}]'. Wrong type. Expected '', got ''\"}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status [0.055719s] ... ok GET: /v1/drivers {} GOT:{u'drivers': [{u'hosts': [u'fake-host1', u'fake-host2'], u'type': u'dynamic', u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}], u'properties': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type/properties', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type/properties', u'rel': u'bookmark'}]}, {u'hosts': [u'fake-host1'], u'type': u'dynamic', u'name': u'fake-hardware-type-2', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}], u'properties': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2/properties', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2/properties', u'rel': u'bookmark'}]}]} GET: /v1/drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{u'hosts': [u'fake-host1'], u'name': u'fake-hardware-type-2', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{u'hosts': [u'fake-host1'], u'name': u'fake-hardware-type-2', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic [0.074498s] ... ok GET: /v1/drivers?type=working {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-17d5a171-2bfe-4164-a21b-56e78441e76f 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"\\\"type\\\" filter must be one of \\\"classic\\\" or \\\"dynamic\\\", if specified.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value [0.054823s] ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-13336084-114b-4e53-8e4f-eae72b43932e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found [0.039231s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/5008c029-5994-42ff-beee-67363926c06a GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-f0a52e45-d837-4ea0-b94d-b83a8c870599 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked [0.031359s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GET: /v1/drivers?detail=True {} GOT:{u'vifs': []} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list [0.032002s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_port_api_policy [0.071090s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version [0.029332s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid [0.011707s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_portgroup_api_policy [0.037329s] ... ok POST: /v1/nodes/node-39/vifs {'id': '25827b5a-cd02-4630-b204-683b42672ade'} GOT:Response: 204 No Content Openstack-Request-Id: req-3545f17a-0c27-49ce-8b03-e369e4890ac0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name [0.033032s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/f570c546-7502-44f5-afea-61b541c45562 GOT:Response: 204 No Content Openstack-Request-Id: req-dca9c37a-dbe4-46e5-b766-7eeac97a5df0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach [0.032725s] ... ok DELETE: /v1/nodes/node-39/vifs/69a6f949-84bd-4bc2-a262-266178187e26 GOT:Response: 204 No Content Openstack-Request-Id: req-c1590b95-151f-4139-9188-593c9706ffcd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name [0.030580s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value [0.029506s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface [0.011590s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid [0.016557s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4a941d5e-39d1-440d-b6fe-8ff07db6ac0c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is associated with instance aaaaaaaa-1111-bbbb-2222-cccccccccccc.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated [0.045346s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:{u'bios': [{u'value': u'on', u'created_at': u'2019-10-11T05:54:23.317631+00:00', u'name': u'virtualization', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', u'rel': u'bookmark'}], u'updated_at': None}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios [0.055263s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {}GOT:{u'drivers': [{u'enabled_rescue_interfaces': [], u'default_inspect_interface': None, u'default_storage_interface': None, u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}], u'default_rescue_interface': None, u'enabled_raid_interfaces': [], u'enabled_management_interfaces': [], u'enabled_bios_interfaces': [], u'enabled_deploy_interfaces': [u'iscsi', u'direct'], u'default_boot_interface': None, u'default_bios_interface': None, u'default_raid_interface': None, u'default_power_interface': None, u'enabled_network_interfaces': [], u'default_management_interface': None, u'hosts': [u'fake-host1', u'fake-host2'], u'enabled_storage_interfaces': [], u'default_vendor_interface': None, u'default_network_interface': None, u'enabled_boot_interfaces': [], u'enabled_inspect_interfaces': [], u'enabled_console_interfaces': [], u'properties': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type/properties', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type/properties', u'rel': u'bookmark'}], u'name': u'fake-hardware-type', u'default_console_interface': None, u'type': u'dynamic', u'default_deploy_interface': u'direct', u'enabled_vendor_interfaces': [], u'enabled_power_interfaces': []}, {u'enabled_rescue_interfaces': [], u'default_inspect_interface': None, u'default_storage_interface': None, u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}], u'default_rescue_interface': None, u'enabled_raid_interfaces': [], u'enabled_management_interfaces': [], u'enabled_bios_interfaces': [], u'enabled_deploy_interfaces': [], u'default_boot_interface': None, u'default_bios_interface': None, u'default_raid_interface': None, u'default_power_interface': None, u'enabled_network_interfaces': [], u'default_management_interface': None, u'hosts': [u'fake-host1'], u'enabled_storage_interfaces': [], u'default_vendor_interface': None, u'default_network_interface': None, u'enabled_boot_interfaces': [], u'enabled_inspect_interfaces': [], u'enabled_console_interfaces': [], u'properties': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2/properties', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2/properties', u'rel': u'bookmark'}], u'name': u'fake-hardware-type-2', u'default_console_interface': None, u'type': u'dynamic', u'default_deploy_interface': None, u'enabled_vendor_interfaces': [], u'enabled_power_interfaces': []}]} GET: /v1/drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{u'hosts': [u'fake-host1'], u'name': u'fake-hardware-type-2', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{u'hosts': [u'fake-host1'], u'name': u'fake-hardware-type-2', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface [0.063899s] ... ok GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{u'foo': u'description of foo'} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties [0.038459s] ... ok GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-508b476c-d04a-4290-ae1c-4b418b437ffe 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version [0.031361s] ... ok GET: /v1/drivers?detail=True {} GOT:{u'drivers': [{u'default_inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}], u'enabled_raid_interfaces': [], u'enabled_management_interfaces': [], u'enabled_deploy_interfaces': [u'iscsi', u'direct'], u'default_boot_interface': None, u'default_raid_interface': None, u'default_power_interface': None, u'enabled_network_interfaces': [], u'default_management_interface': None, u'enabled_power_interfaces': [], u'default_vendor_interface': None, u'default_network_interface': None, u'enabled_boot_interfaces': [], u'enabled_inspect_interfaces': [], u'enabled_console_interfaces': [], u'properties': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type/properties', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type/properties', u'rel': u'bookmark'}], u'name': u'fake-hardware-type', u'default_console_interface': None, u'type': u'dynamic', u'default_deploy_interface': u'direct', u'enabled_vendor_interfaces': [], u'hosts': [u'fake-host1', u'fake-host2']}, {u'default_inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}], u'enabled_raid_interfaces': [], u'enabled_management_interfaces': [], u'enabled_deploy_interfaces': [], u'default_boot_interface': None, u'default_raid_interface': None, u'default_power_interface': None, u'enabled_network_interfaces': [], u'default_management_interface': None, u'enabled_power_interfaces': [], u'default_vendor_interface': None, u'default_network_interface': None, u'enabled_boot_interfaces': [], u'enabled_inspect_interfaces': [], u'enabled_console_interfaces': [], u'properties': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2/properties', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2/properties', u'rel': u'bookmark'}], u'name': u'fake-hardware-type-2', u'default_console_interface': None, u'type': u'dynamic', u'default_deploy_interface': None, u'enabled_vendor_interfaces': [], u'hosts': [u'fake-host1']}]} GET: /v1/drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{u'hosts': [u'fake-host1', u'fake-host2'], u'name': u'fake-hardware-type', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type', u'rel': u'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{u'hosts': [u'fake-host1'], u'name': u'fake-hardware-type-2', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{u'hosts': [u'fake-host1'], u'name': u'fake-hardware-type-2', u'links': [{u'href': u'http://localhost/v1/drivers/fake-hardware-type-2', u'rel': u'self'}, {u'href': u'http://localhost/drivers/fake-hardware-type-2', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed [0.078948s] ... ok GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{u'foo': u'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{u'foo': u'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{u'foo': u'description of foo'} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached [0.046854s] ... ok POST: /v1/events {'events': [{'event': 'invalid.event'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1bab07f6-1cc5-4498-9e83-2c5ed9c924ef X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"invalid.event is not one of valid events: network.bind_port, network.unbind_port, network.delete_port.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event [0.027430s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 202 Accepted Openstack-Request-Id: req-58e9f790-2a4d-445e-b7e0-132c157ac093 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode [0.049473s] ... ok POST: /v1/events {'events': [{'INVALID': 'fake.event'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2e143df3-e193-4b4d-a6d7-3c88db516030 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: event\"}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event [0.032389s] ... ok POST: /v1/events {'events': [{'status': 'ACTIVE', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal', 'mac_address': 'de:ad:ca:fe:ba:be', 'port_id': 'PORT_ID_SHOULD_BE_UUID', 'event': 'network.bind_port', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f079aa2-6d0e-4419-97a3-8eae049ffcb9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Event validation failure for port_id. Expected a UUID but received PORT_ID_SHOULD_BE_UUID.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id [0.041672s] ... ok POST: /v1/nodes/node-39/vifs {'id': '35ce49f5-bf6d-4a0b-ad1c-e4c4941820cd'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ffd6c650-cc3e-4627-b48e-aae5a36ab48a 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"boom\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable [0.039707s] ... ok DELETE: /v1/nodes/doesntexist/vifs/11a89c09-9c49-4bab-a0e3-3f60697e9c08 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-522c03c5-c670-4734-9da4-7238be7a4e7e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found [0.057116s] ... ok DELETE: /v1/nodes/foo/maintenance GOT:Response: 202 Accepted Openstack-Request-Id: req-a1c003b3-ca1c-4c4a-86a3-3a8c1d2bdfb8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name [0.029681s] ... ok POST: /v1/events {'events': [{'status': 'ACTIVE', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'], 'mac_address': 'de:ad:ca:fe:ba:be', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'event': 'network.bind_port', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5f9417e7-55f4-49b6-8a67-eb34613ae5de X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute events. Value: '[{'status': 'ACTIVE', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'], 'mac_address': 'de:ad:ca:fe:ba:be', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'event': 'network.bind_port', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555'}]'. Wrong type. Expected '', got ''\"}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type [0.023609s] ... ok POST: /v1/events {'events': [{'UNKNOWN': 'EVENT_PROPERTY', 'event': 'network.unbind_port'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fee1f06f-8108-4253-b883-714c783e017c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"UNKNOWN are invalid keys\"}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property [0.022482s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_driver_api_policy [0.028755s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_node_api_policy [0.098831s] ... ok GET: /v1/nodes?associated=true {} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'invalid%id^'} GOT:{u'virtualization': {u'value': u'on', u'created_at': u'2019-10-11T05:54:23.369152+00:00', u'name': u'virtualization', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', u'rel': u'bookmark'}], u'updated_at': None}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios [0.051492s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list [0.015937s] ... ok DELETE: /v1/nodes/foo.1 GOT:Response: 204 No Content Openstack-Request-Id: req-21473cf3-cb69-4016-a302-24fe7b140412 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {3} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name [0.037874s] ... ok DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d86330b3-5127-417b-9e2e-b8ceded71bc5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported [0.028216s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version [0.069467s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-66f6afb0-1020-483d-bdc3-0cde5374d7ef X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found [0.032884s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a4741834-e365-4d30-926a-22759ef5a84f 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received invalid%id^.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id [0.069240s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'bad_id': 'db3f0ff5-c219-4881-84db-11eb0fb23ccc'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ee4bfa0e-4c65-4813-9495-a795ebf9a997 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: id\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id [0.029457s] ... ok GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-431396d3-2a31-482f-bf4c-16a7de24814f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource [0.034674s] ... ok DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f96b371a-3be1-43eb-88ce-dde1f8c925f4 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name [0.074355s] ... ok GOT:{u'nodes': [{u'instance_uuid': u'8ad875c3-4a29-4e3e-b06f-28f934787239', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/1476922b-8b67-418e-a622-28e9696f64a3', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1476922b-8b67-418e-a622-28e9696f64a3', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'1476922b-8b67-418e-a622-28e9696f64a3'}, {u'instance_uuid': u'bed71cf4-e52e-442b-9ef3-e5b7f15998d3', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/b237ce67-12c5-4ff3-8205-a8807f946384', u'rel': u'self'}, {u'href': u'http://localhost/nodes/b237ce67-12c5-4ff3-8205-a8807f946384', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'b237ce67-12c5-4ff3-8205-a8807f946384'}, {u'instance_uuid': u'3e51e325-1bb9-4021-ae31-fd1919a1e324', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/3a2d2f9f-007e-44b1-ba53-21084173e6cc', u'rel': u'self'}, {u'href': u'http://localhost/nodes/3a2d2f9f-007e-44b1-ba53-21084173e6cc', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'3a2d2f9f-007e-44b1-ba53-21084173e6cc'}, {u'instance_uuid': u'2b44e5eb-07f1-4545-99e0-d2d82988176f', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/6154693e-e06c-43db-9074-236df7e76048', u'rel': u'self'}, {u'href': u'http://localhost/nodes/6154693e-e06c-43db-9074-236df7e76048', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'6154693e-e06c-43db-9074-236df7e76048'}]} GET: /v1/nodes?associated=True {} GOT:{u'nodes': [{u'instance_uuid': u'8ad875c3-4a29-4e3e-b06f-28f934787239', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/1476922b-8b67-418e-a622-28e9696f64a3', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1476922b-8b67-418e-a622-28e9696f64a3', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'1476922b-8b67-418e-a622-28e9696f64a3'}, {u'instance_uuid': u'bed71cf4-e52e-442b-9ef3-e5b7f15998d3', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/b237ce67-12c5-4ff3-8205-a8807f946384', u'rel': u'self'}, {u'href': u'http://localhost/nodes/b237ce67-12c5-4ff3-8205-a8807f946384', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'b237ce67-12c5-4ff3-8205-a8807f946384'}, {u'instance_uuid': u'3e51e325-1bb9-4021-ae31-fd1919a1e324', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/3a2d2f9f-007e-44b1-ba53-21084173e6cc', u'rel': u'self'}, {u'href': u'http://localhost/nodes/3a2d2f9f-007e-44b1-ba53-21084173e6cc', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'3a2d2f9f-007e-44b1-ba53-21084173e6cc'}, {u'instance_uuid': u'2b44e5eb-07f1-4545-99e0-d2d82988176f', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/6154693e-e06c-43db-9074-236df7e76048', u'rel': u'self'}, {u'href': u'http://localhost/nodes/6154693e-e06c-43db-9074-236df7e76048', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'6154693e-e06c-43db-9074-236df7e76048'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive [0.172550s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version [0.049178s] ... ok DELETE: /v1/nodes/foo DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-58830979-f1f6-485c-9c5c-a5ded867ee8d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\"}"} GET: /v1/nodes {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a8ca2e66-2056-4997-8e59-4a1ebc20a140 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported [0.044128s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id [0.032894s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-531331ca-31db-4089-9e7f-02bef5116d39 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single [0.038462s] ... ok GET: /v1/nodes/detail?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ff58e788-9bc9-426d-a7db-44d5603a2929 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed [0.028010s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-906df24a-aac4-4529-9888-67e3be6cca2e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a BIOS setting 'fake_setting'\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found [0.072158s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid [0.014066s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-74f91788-8743-490a-ad26-6945bd68d024 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id [0.062074s] ... ok GET: /v1/nodes/detail?associated=true {} {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid [0.019654s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key [0.012533s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value [0.011319s] ... ok GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/227c1e7f-a5f4-40db-b56c-2d01ad31086e', u'rel': u'self'}, {u'href': u'http://localhost/nodes/227c1e7f-a5f4-40db-b56c-2d01ad31086e', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'227c1e7f-a5f4-40db-b56c-2d01ad31086e'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/0902fcfe-5e45-44fd-a24a-5bbf91b603b9', u'rel': u'self'}, {u'href': u'http://localhost/nodes/0902fcfe-5e45-44fd-a24a-5bbf91b603b9', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'0902fcfe-5e45-44fd-a24a-5bbf91b603b9'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/7667a66d-e1c7-4255-b12e-991aa7f8040e', u'rel': u'self'}, {u'href': u'http://localhost/nodes/7667a66d-e1c7-4255-b12e-991aa7f8040e', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'7667a66d-e1c7-4255-b12e-991aa7f8040e'}], u'next': u'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=7667a66d-e1c7-4255-b12e-991aa7f8040e'} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit [0.117324s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict [0.012742s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 204 No Content Openstack-Request-Id: req-d26afa5c-a259-40e8-9a4d-67ea11aa8996 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node [0.035750s] ... ok DELETE: /v1/nodes/foo.json GOT:Response: 204 No Content Openstack-Request-Id: req-90bf2b40-6bda-44a3-a176-9ef559784820 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json [0.039874s] ... ok GET: /v1/nodes/?limit=3 {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/50f51056-1f80-4402-bd4c-2cba6d223532', u'rel': u'self'}, {u'href': u'http://localhost/nodes/50f51056-1f80-4402-bd4c-2cba6d223532', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'50f51056-1f80-4402-bd4c-2cba6d223532'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/6f355391-68fd-4d77-8d6f-cf81575b049c', u'rel': u'self'}, {u'href': u'http://localhost/nodes/6f355391-68fd-4d77-8d6f-cf81575b049c', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'6f355391-68fd-4d77-8d6f-cf81575b049c'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/99471298-6489-4c36-bffa-c15b83794db5', u'rel': u'self'}, {u'href': u'http://localhost/nodes/99471298-6489-4c36-bffa-c15b83794db5', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'99471298-6489-4c36-bffa-c15b83794db5'}], u'next': u'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=99471298-6489-4c36-bffa-c15b83794db5'} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links [0.136703s] ... ok 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-0e45330a-ad0c-4706-bb48-94b6a121d942 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource [0.035002s] ... ok GET: /v1/nodes?instance_uuid=98f2525c-a6e3-4321-a5b3-f30430a8e70f {} GOT:{u'nodes': [{u'instance_uuid': u'98f2525c-a6e3-4321-a5b3-f30430a8e70f', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/be36781e-f226-4ecc-b74c-8ba614448584', u'rel': u'self'}, {u'href': u'http://localhost/nodes/be36781e-f226-4ecc-b74c-8ba614448584', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'be36781e-f226-4ecc-b74c-8ba614448584'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param [0.064463s] ... ok 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-c3bc11c5-632d-4702-b845-a3f826bf84c1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource [0.054865s] ... ok GOT:{u'nodes': [{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/d03dbc32-6d56-4492-a233-871be4f22f3c', u'rel': u'self'}, {u'href': u'http://localhost/nodes/d03dbc32-6d56-4492-a233-871be4f22f3c', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'd03dbc32-6d56-4492-a233-871be4f22f3c', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': u'886e60a8-45f4-475b-9e19-ff33cb4b9c16', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:23.662210+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/d03dbc32-6d56-4492-a233-871be4f22f3c/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/d03dbc32-6d56-4492-a233-871be4f22f3c/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}}, {u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/f1c4b9f8-ef21-4374-a5f4-877bc6a718de', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f1c4b9f8-ef21-4374-a5f4-877bc6a718de', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'f1c4b9f8-ef21-4374-a5f4-877bc6a718de', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': u'61379a88-ba40-4d1e-bf4d-27fc7eb5facf', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:23.666642+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/f1c4b9f8-ef21-4374-a5f4-877bc6a718de/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f1c4b9f8-ef21-4374-a5f4-877bc6a718de/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}}, {u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/f26be2c1-318d-4ed7-9d8d-393a69c52955', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f26be2c1-318d-4ed7-9d8d-393a69c52955', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'f26be2c1-318d-4ed7-9d8d-393a69c52955', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': u'10330b8b-c208-4eef-8d4a-3aa7fa5fd786', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:23.671082+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/f26be2c1-318d-4ed7-9d8d-393a69c52955/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f26be2c1-318d-4ed7-9d8d-393a69c52955/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}}, {u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/49d4bfe1-dab8-4c21-a08c-2f31efd69c8d', u'rel': u'self'}, {u'href': u'http://localhost/nodes/49d4bfe1-dab8-4c21-a08c-2f31efd69c8d', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'49d4bfe1-dab8-4c21-a08c-2f31efd69c8d', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': u'afd577d7-20d2-4ba1-8bd4-1a337c9a1070', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:23.675504+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/49d4bfe1-dab8-4c21-a08c-2f31efd69c8d/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/49d4bfe1-dab8-4c21-a08c-2f31efd69c8d/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter [0.118041s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GET: /v1/nodes?detail=True {} GOT:{u'nodes': [{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:23.691078+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query [0.075515s] ... ok GET: /v1/nodes/detail {} GET: /v1/nodes/detail?instance_uuid=5e23f4dd-d2e0-4a62-b292-c496ad20601c {} GOT:{u'nodes': [{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/0ca216d5-a389-4816-ab2b-798a2a9a722f', u'rel': u'self'}, {u'href': u'http://localhost/nodes/0ca216d5-a389-4816-ab2b-798a2a9a722f', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'0ca216d5-a389-4816-ab2b-798a2a9a722f', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': u'5e23f4dd-d2e0-4a62-b292-c496ad20601c', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:23.758786+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/0ca216d5-a389-4816-ab2b-798a2a9a722f/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/0ca216d5-a389-4816-ab2b-798a2a9a722f/ports', u'rel': u'bookmark'}], u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid [0.042890s] ... ok 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:{u'management_interface': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'power_interface': None, u'deploy_interface': None, u'boot_interface': None, u'console_interface': None, u'raid_interface': None, u'vendor_interface': None} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields [0.062282s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=automated_clean {} GOT:{u'automated_clean': True, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields [0.044909s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor {} GOT:{u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'conductor': u'fake.conductor'} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field [0.050946s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:{u'console_enabled': False, u'console_info': None} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled [0.040742s] ... ok GET: /v1/nodes?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ba0762f4-5246-4e18-98d2-9f95b06a9ed2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields [0.040957s] ... ok GET: /v1/nodes?detail=False&fields=name {} GOT:{u'nodes': [{u'name': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields [0.094613s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} GOT:{u'conductor_group': u'', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields [0.047473s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:{u'console_enabled': True, u'console_info': {u'test': u'test-data'}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information [0.051084s] ... ok GET: /v1/nodes?fault=power failure {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-058d4707-9a94-49af-83ef-8caae16c5670 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource [0.060234s] ... ok GET: /v1/nodes/spam/states/console {} GOT:{u'console_enabled': True, u'console_info': {u'test': u'test-data'}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name [0.057806s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e180b58a-1c45-4c4e-909d-5c42385a069a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported [0.038317s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-992f831a-a662-47c5-ba29-7290580d0250 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version [0.030673s] ... ok GET: /v1/nodes?associated=blah {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3c7c6fb7-b1ca-418c-96d0-99c54bf48ee2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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'\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error [0.145703s] ... ok GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a', u'rel': u'self'}, {u'href': u'http://localhost/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a'}]} GET: /v1/nodes?fault=clean failure {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'a6f8942b-86b7-4ce5-af4e-cbc70dfa346b'}]} GET: /v1/nodes/detail?fault=power failure {} GOT:{u'nodes': [{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:23.918883+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail [0.095042s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=description {} GET: /v1/nodes/detail?sort_key=resource_class {} GET: /v1/nodes {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/nodes?detail=False {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false [0.176078s] ... ok GET: /v1/nodes?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6d99721f-c844-493b-ae0d-6f84a96cb1ba X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version [0.035448s] ... ok GOT:{u'description': u'useful piece', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field [0.062407s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-19f602df-f8fe-402c-9365-85ccec7576cc 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version [0.030978s] ... ok GET: /v1/nodes {} GET: /v1/nodes?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a1ab1c63-be73-471f-90c9-4e55aa856957 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\"}"} GET: /v1/nodes/detail?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1b7ec91b-6b5f-46db-bd0e-6e20544a0e47 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed [0.040074s] ... ok GOT:{u'nodes': []}GET: /v1/nodes?fault=power failure {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6a2493f3-1dca-4c17-93e9-85a60c88565c 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\"}"} GET: /v1/nodes/detail?fault=power failure {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-318d4dbc-703d-49a6-925b-81c3cce6355b 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed [0.029935s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty [0.078990s] ... ok GET: /v1/nodes?resource_class=test {} GET: /v1/nodes/spam/management/boot_device {} GOT:{u'boot_device': u'pxe', u'persistent': True} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name [0.057524s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b9b247fb-d731-4d53-9a3f-831b73b51e69 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version [0.032882s] ... ok GOT:{u'nodes': []} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class [0.054401s] ... ok GET: /v1/nodes?provision_state=test {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-aaa1abc3-f5ca-4161-9ca9-751abc348e97 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed [0.026466s] ... ok GET: /v1/nodes/detail?resource_class=foo {} GET: /v1/nodes?conductor=rocky.rocks {} GOT:{u'nodes': []} GET: /v1/nodes?conductor=fake.conductor {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/890b3f60-0ffd-40da-b6bc-0bd42aba89ee', u'rel': u'self'}, {u'href': u'http://localhost/nodes/890b3f60-0ffd-40da-b6bc-0bd42aba89ee', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'890b3f60-0ffd-40da-b6bc-0bd42aba89ee'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/b48c5dcf-8bf6-48af-9cd0-00345b209bbf', u'rel': u'self'}, {u'href': u'http://localhost/nodes/b48c5dcf-8bf6-48af-9cd0-00345b209bbf', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'b48c5dcf-8bf6-48af-9cd0-00345b209bbf'}]} GET: /v1/nodes?conductor=fake.conductor {} GOT:{u'nodes': [{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/066f49b8-55dd-401b-836f-6a86a01159ca', u'rel': u'self'}, {u'href': u'http://localhost/nodes/066f49b8-55dd-401b-836f-6a86a01159ca', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/066f49b8-55dd-401b-836f-6a86a01159ca/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/066f49b8-55dd-401b-836f-6a86a01159ca/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'066f49b8-55dd-401b-836f-6a86a01159ca', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': u'foo', u'created_at': u'2019-10-11T05:54:24.364149+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/066f49b8-55dd-401b-836f-6a86a01159ca/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/066f49b8-55dd-401b-836f-6a86a01159ca/ports', u'rel': u'bookmark'}]}]} GET: /v1/nodes/detail?resource_class=bar {} GOT:{u'nodes': [{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/3654f40c-4d5d-4654-b637-de900efc7bc7', u'rel': u'self'}, {u'href': u'http://localhost/nodes/3654f40c-4d5d-4654-b637-de900efc7bc7', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/3654f40c-4d5d-4654-b637-de900efc7bc7/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/3654f40c-4d5d-4654-b637-de900efc7bc7/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'3654f40c-4d5d-4654-b637-de900efc7bc7', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': u'bar', u'created_at': u'2019-10-11T05:54:24.368851+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/3654f40c-4d5d-4654-b637-de900efc7bc7/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/3654f40c-4d5d-4654-b637-de900efc7bc7/ports', u'rel': u'bookmark'}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail [0.110369s] ... ok GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/b48c5dcf-8bf6-48af-9cd0-00345b209bbf', u'rel': u'self'}, {u'href': u'http://localhost/nodes/b48c5dcf-8bf6-48af-9cd0-00345b209bbf', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'b48c5dcf-8bf6-48af-9cd0-00345b209bbf'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor [0.184395s] ... ok GET: /v1/nodes/detail?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9cf5b955-56f2-4e12-8938-1fb63e9ce1d7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail [0.046082s] ... ok GOT:{u'nodes': [{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/4dd8b0c1-18aa-4823-9924-0d4a01da35f3', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4dd8b0c1-18aa-4823-9924-0d4a01da35f3', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/4dd8b0c1-18aa-4823-9924-0d4a01da35f3/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4dd8b0c1-18aa-4823-9924-0d4a01da35f3/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'4dd8b0c1-18aa-4823-9924-0d4a01da35f3', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': u'rc_1', u'created_at': u'2019-10-11T05:54:24.173397+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/4dd8b0c1-18aa-4823-9924-0d4a01da35f3/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4dd8b0c1-18aa-4823-9924-0d4a01da35f3/ports', u'rel': u'bookmark'}]}, {u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/23267735-48f7-4e1b-ab90-21c86637d2ea', u'rel': u'self'}, {u'href': u'http://localhost/nodes/23267735-48f7-4e1b-ab90-21c86637d2ea', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/23267735-48f7-4e1b-ab90-21c86637d2ea/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/23267735-48f7-4e1b-ab90-21c86637d2ea/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'23267735-48f7-4e1b-ab90-21c86637d2ea', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': u'rc_2', u'created_at': u'2019-10-11T05:54:24.163495+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/23267735-48f7-4e1b-ab90-21c86637d2ea/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/23267735-48f7-4e1b-ab90-21c86637d2ea/ports', u'rel': u'bookmark'}]}, {u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/7cd27d63-d339-4a9f-a2a2-46e3cb07417f', u'rel': u'self'}, {u'href': u'http://localhost/nodes/7cd27d63-d339-4a9f-a2a2-46e3cb07417f', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/7cd27d63-d339-4a9f-a2a2-46e3cb07417f/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/7cd27d63-d339-4a9f-a2a2-46e3cb07417f/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'7cd27d63-d339-4a9f-a2a2-46e3cb07417f', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': u'rc_3', u'created_at': u'2019-10-11T05:54:24.154647+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/7cd27d63-d339-4a9f-a2a2-46e3cb07417f/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/7cd27d63-d339-4a9f-a2a2-46e3cb07417f/ports', u'rel': u'bookmark'}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed [0.167011s] ... ok 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-f444aa00-e390-49d8-a654-dd232953b49b 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version [0.060932s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:{u'boot_device': u'pxe', u'persistent': True} GET: /v1/nodes?conductor=like.shadows {} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device [0.067214s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-95bacc59-65f8-425f-b624-b9c206079eb8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported [0.078296s] ... ok GOT:{u'nodes': []} GET: /v1/nodes?conductor=like.shadows {} GET: /v1/nodes/node.json {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': u'node.json', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:24.518337+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name [0.072759s] ... ok GOT:{u'nodes': []} GET: /v1/nodes?conductor=fake.conductor {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-39b3c27e-0f69-4f2f-9fed-ac59fb314c32 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": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"Some unexpected thing happened\"}"} GOT:{u'nodes': [{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a', u'rel': u'self'}, {u'href': u'http://localhost/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': u'power failure', u'created_at': u'2019-10-11T05:54:24.001552+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/c9670c19-c5c3-4a5d-9fda-c147d5d1eb4a/ports', u'rel': u'bookmark'}]}]} GET: /v1/nodes/detail?fault=clean failure {} GOT:{u'nodes': [{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'a6f8942b-86b7-4ce5-af4e-cbc70dfa346b', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': u'clean failure', u'created_at': u'2019-10-11T05:54:24.006261+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a6f8942b-86b7-4ce5-af4e-cbc70dfa346b/ports', u'rel': u'bookmark'}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault [0.200083s] ... ok GET: /v1/nodes?driver=test {} GOT:{u'nodes': []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver [0.061522s] ... ok GET: /v1/nodes?provision_state=test {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e3b5cd63-f626-4d66-b3b3-311be2bfb4a8 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Provision state \\\"test\\\" is not valid\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state [0.046344s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host [0.165554s] ... ok GET: /v1/nodes?driver=ipmi {} GET: /v1/nodes/detail?resource_class=test {} GOT:{u'nodes': []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail [0.059635s] ... ok GET: /v1/nodes?fields=uuid,instance_info {} GOT:{u'nodes': [{u'uuid': u'986e3103-b0f2-44fb-ad71-73af71ee122b', u'links': [{u'href': u'http://localhost/v1/nodes/986e3103-b0f2-44fb-ad71-73af71ee122b', u'rel': u'self'}, {u'href': u'http://localhost/nodes/986e3103-b0f2-44fb-ad71-73af71ee122b', u'rel': u'bookmark'}], u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}}, {u'uuid': u'3f10ee6e-f67e-4f1a-83fe-7513c919f07f', u'links': [{u'href': u'http://localhost/v1/nodes/3f10ee6e-f67e-4f1a-83fe-7513c919f07f', u'rel': u'self'}, {u'href': u'http://localhost/nodes/3f10ee6e-f67e-4f1a-83fe-7513c919f07f', u'rel': u'bookmark'}], u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}}, {u'uuid': u'7358b298-5000-4c16-b3a4-59837635fb92', u'links': [{u'href': u'http://localhost/v1/nodes/7358b298-5000-4c16-b3a4-59837635fb92', u'rel': u'self'}, {u'href': u'http://localhost/nodes/7358b298-5000-4c16-b3a4-59837635fb92', u'rel': u'bookmark'}], u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} GOT:{u'storage_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields [0.267198s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields [0.134604s] ... ok GET: /v1/nodes?owner=fred {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba', u'rel': u'self'}, {u'href': u'http://localhost/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'cf9b8ced-11f1-466a-9f99-59050b1c16ba'}]} GET: /v1/nodes?owner=bob {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'4cadec15-e87a-4fbb-b3b4-94bbeacb100d'}]} GET: /v1/nodes/detail?owner=fred {} GOT:{u'nodes': [{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba', u'rel': u'self'}, {u'href': u'http://localhost/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'cf9b8ced-11f1-466a-9f99-59050b1c16ba', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:24.369838+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'owner': u'fred', u'ports': [{u'href': u'http://localhost/v1/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/cf9b8ced-11f1-466a-9f99-59050b1c16ba/ports', u'rel': u'bookmark'}]}]} GET: /v1/nodes/detail?owner=bob {} GOT:{u'nodes': [{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'4cadec15-e87a-4fbb-b3b4-94bbeacb100d', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:24.378019+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'owner': u'bob', u'ports': [{u'href': u'http://localhost/v1/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4cadec15-e87a-4fbb-b3b4-94bbeacb100d/ports', u'rel': u'bookmark'}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner [0.211475s] ... ok GET: /v1/nodes?fields=name&limit=2 {} GOT:{u'nodes': [{u'name': None, u'links': [{u'href': u'http://localhost/v1/nodes/f5805897-b7e0-4ae7-a61c-01d3abe7d605', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f5805897-b7e0-4ae7-a61c-01d3abe7d605', u'rel': u'bookmark'}]}, {u'name': None, u'links': [{u'href': u'http://localhost/v1/nodes/9e488657-e873-40e3-b255-d1177cc41ae6', u'rel': u'self'}, {u'href': u'http://localhost/nodes/9e488657-e873-40e3-b255-d1177cc41ae6', u'rel': u'bookmark'}]}], u'next': u'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=2&marker=9e488657-e873-40e3-b255-d1177cc41ae6'} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid [0.125989s] ... ok GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/0c67854a-44cd-4107-b2d4-f26a6f442ce6', u'rel': u'self'}, {u'href': u'http://localhost/nodes/0c67854a-44cd-4107-b2d4-f26a6f442ce6', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'0c67854a-44cd-4107-b2d4-f26a6f442ce6'}]} GET: /v1/nodes?driver=fake-hardware {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/10888588-a1b9-4a89-bb06-d343544e332e', u'rel': u'self'}, {u'href': u'http://localhost/nodes/10888588-a1b9-4a89-bb06-d343544e332e', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'10888588-a1b9-4a89-bb06-d343544e332e'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver [0.120746s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GET: /v1/nodes?provision_state=available {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:24.868204+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': u'available', u'clean_step': {u'foo': u'bar'}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'target_provision_state': None, u'provision_updated_at': None, u'power_state': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:24.868204+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step [0.067731s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GET: /v1/nodes?owner=fred {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c1ad6471-34a9-410b-9239-3375076db3c7 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\"}"} GET: /v1/nodes/detail?owner=fred {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-933bdd4b-dcd3-44c9-874a-e216bd48dc51 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed [0.029449s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=extra,instance_info {} GOT:{u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'extra': {}} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields [0.062796s] ... ok GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:24.928797+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GET: /v1/nodes/test.1 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': u'test.1', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:24.684181+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix [0.062656s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4143a90e-74ad-4ac8-90e6-90471f635b6f 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version [0.067596s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:{u'supported_boot_devices': [u'pxe']} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices [0.058139s] ... ok GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': u'available', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:24.928797+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'foo': u'bar'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal [0.076805s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-85e83e4e-de7e-4433-afc8-b3fec22b94b5 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version [0.038241s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-00c9c80a-4525-4d9d-98c0-d9afac360b80 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields [0.060040s] ... ok GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/a7cb2e85-5473-4caf-83ab-af4dff255e63', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a7cb2e85-5473-4caf-83ab-af4dff255e63', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'a7cb2e85-5473-4caf-83ab-af4dff255e63'}]} GET: /v1/nodes?provision_state=deploying {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/a135d609-efd5-411b-8df1-b83b8c8e4228', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a135d609-efd5-411b-8df1-b83b8c8e4228', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'deploying', u'uuid': u'a135d609-efd5-411b-8df1-b83b8c8e4228'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state [0.137111s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} GOT:{u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'network_interface': None} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields [0.109970s] ... ok GET: /v1/nodes?conductor_group=group1 {} GET: /v1/nodes?traits=CUSTOM_TRAIT_1 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9d7c8a17-a362-4eda-8dd1-c37e90e7d37c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed [0.030229s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=driver_info {} GOT:{u'driver_info': {u'fake_password': u'******'}, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password [0.059006s] ... ok GET: /v1/nodes/detail {} GET: /v1/nodes/node.json.json {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} GOT:{u'traits': [], u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields [0.298698s] ... ok GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': u'node.json', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:25.085958+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json [0.044669s] ... ok GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d', u'rel': u'self'}, {u'href': u'http://localhost/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'df97d39d-9fa3-47a0-a675-6bae31027a9d'}]} GET: /v1/nodes?conductor_group=group2 {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0', u'rel': u'self'}, {u'href': u'http://localhost/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'bc008ec5-f154-4b16-90dc-7bc50655cca0'}]} GET: /v1/nodes/detail?conductor_group=group1 {} GOT:{u'nodes': [{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d', u'rel': u'self'}, {u'href': u'http://localhost/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'group1', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'df97d39d-9fa3-47a0-a675-6bae31027a9d', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:24.979197+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/df97d39d-9fa3-47a0-a675-6bae31027a9d/ports', u'rel': u'bookmark'}]}]} GET: /v1/nodes/detail?conductor_group=group2 {} GOT:{u'nodes': [{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0', u'rel': u'self'}, {u'href': u'http://localhost/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'group2', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'bc008ec5-f154-4b16-90dc-7bc50655cca0', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:25.004853+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/bc008ec5-f154-4b16-90dc-7bc50655cca0/ports', u'rel': u'bookmark'}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group [0.241358s] ... ok GET: /v1/nodes?conductor=rocky.rocks {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4cbbde52-47e4-4b4b-a229-3807cc49e82b 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.49\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed [0.036608s] ... ok GET: /v1/nodes?description_contains=cat {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=protected {} GOT:{u'nodes': [{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:25.026436+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]}]} GET: /v1/nodes/detail {} GOT:{u'nodes': [{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [u'CUSTOM_1'], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:25.026436+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits [0.169849s] ... ok GOT:{u'protected': True, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}]} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/1792df5a-7aa0-44f8-9b49-acaf802d09a5', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1792df5a-7aa0-44f8-9b49-acaf802d09a5', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'1792df5a-7aa0-44f8-9b49-acaf802d09a5'}]} GET: /v1/nodes?description_contains=dog {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:25.174321+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:25.174321+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume [0.070136s] ... ok GET: /v1/nodes/detail {} GOT:{u'nodes': [{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:25.170320+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]}]} GET: /v1/nodes/detail {} GOT:{u'nodes': [{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:25.170320+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields [0.122456s] ... ok GET: /v1/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'a2fb4f98-1fa5-4da4-aee7-76214c49df31', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:25.263447+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} GET: /v1/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'a2fb4f98-1fa5-4da4-aee7-76214c49df31', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:25.263447+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} GET: /nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'a2fb4f98-1fa5-4da4-aee7-76214c49df31', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:25.263447+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a2fb4f98-1fa5-4da4-aee7-76214c49df31/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links [0.094244s] ... ok GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/3740b640-65b7-4e10-bfb4-b58b8abfe4e2', u'rel': u'self'}, {u'href': u'http://localhost/nodes/3740b640-65b7-4e10-bfb4-b58b8abfe4e2', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'3740b640-65b7-4e10-bfb4-b58b8abfe4e2'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description [0.277785s] ... ok GET: /v1/nodes/detail {} GOT:{u'nodes': [{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:25.305512+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]}]} GET: /v1/nodes/detail {} GOT:{u'nodes': [{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:25.305512+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface [0.128331s] ... ok GET: /v1/nodes/c8780500-235c-4824-9bff-a6e1ab50d730 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://foo/v1/nodes/c8780500-235c-4824-9bff-a6e1ab50d730', u'rel': u'self'}, {u'href': u'http://foo/nodes/c8780500-235c-4824-9bff-a6e1ab50d730', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'c8780500-235c-4824-9bff-a6e1ab50d730', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:25.340183+00:00', u'ports': [{u'href': u'http://foo/v1/nodes/c8780500-235c-4824-9bff-a6e1ab50d730/ports', u'rel': u'self'}, {u'href': u'http://foo/nodes/c8780500-235c-4824-9bff-a6e1ab50d730/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} GET: /v1/nodes/c8780500-235c-4824-9bff-a6e1ab50d730 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://foo/v1/nodes/c8780500-235c-4824-9bff-a6e1ab50d730', u'rel': u'self'}, {u'href': u'http://foo/nodes/c8780500-235c-4824-9bff-a6e1ab50d730', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'c8780500-235c-4824-9bff-a6e1ab50d730', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:25.340183+00:00', u'ports': [{u'href': u'http://foo/v1/nodes/c8780500-235c-4824-9bff-a6e1ab50d730/ports', u'rel': u'self'}, {u'href': u'http://foo/nodes/c8780500-235c-4824-9bff-a6e1ab50d730/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} GET: /nodes/c8780500-235c-4824-9bff-a6e1ab50d730 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://foo/v1/nodes/c8780500-235c-4824-9bff-a6e1ab50d730', u'rel': u'self'}, {u'href': u'http://foo/nodes/c8780500-235c-4824-9bff-a6e1ab50d730', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'c8780500-235c-4824-9bff-a6e1ab50d730', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:25.340183+00:00', u'ports': [{u'href': u'http://foo/v1/nodes/c8780500-235c-4824-9bff-a6e1ab50d730/ports', u'rel': u'self'}, {u'href': u'http://foo/nodes/c8780500-235c-4824-9bff-a6e1ab50d730/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url [0.071433s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields [1.653412s] ... ok GET: /v1/nodes/detail {} GET: /v1/nodes?driver=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c52bd170-8048-45a8-96f4-456fe785f2d6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.16\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version [1.275813s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GET: /v1/nodes?fault=somefake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a13ed3b0-f2f1-4ebd-b5df-af65fff3c396 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure')\"}"} GET: /v1/nodes/detail?fault=somefake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f59938ea-a1b5-432a-ad08-540eebd9e97b 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure')\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault [0.041295s] ... ok GET: /v1/nodes?resource_class=foo {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/51fa20db-9440-4430-bb76-d3673bdc0f10', u'rel': u'self'}, {u'href': u'http://localhost/nodes/51fa20db-9440-4430-bb76-d3673bdc0f10', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'51fa20db-9440-4430-bb76-d3673bdc0f10'}]} GET: /v1/nodes?resource_class=bar {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/57c17bc8-0788-4dd6-8619-1f15c4c807c7', u'rel': u'self'}, {u'href': u'http://localhost/nodes/57c17bc8-0788-4dd6-8619-1f15c4c807c7', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'57c17bc8-0788-4dd6-8619-1f15c4c807c7'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class [0.117193s] ... ok GET: /v1/nodes?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ae506d91-2ec8-4e08-a228-8351166a6c5f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version [0.031393s] ... ok GET: /v1/nodes?maintenance=true {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': True, u'links': [{u'href': u'http://localhost/v1/nodes/eb993e26-baae-45ac-b944-45041980af9c', u'rel': u'self'}, {u'href': u'http://localhost/nodes/eb993e26-baae-45ac-b944-45041980af9c', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'eb993e26-baae-45ac-b944-45041980af9c'}, {u'instance_uuid': None, u'maintenance': True, u'links': [{u'href': u'http://localhost/v1/nodes/14078ca1-31d9-4868-8784-bfbd4054a3be', u'rel': u'self'}, {u'href': u'http://localhost/nodes/14078ca1-31d9-4868-8784-bfbd4054a3be', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'14078ca1-31d9-4868-8784-bfbd4054a3be'}]} GET: /v1/nodes?maintenance=false {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/ddb92d03-048a-4123-9d32-d2ebdb5015d5', u'rel': u'self'}, {u'href': u'http://localhost/nodes/ddb92d03-048a-4123-9d32-d2ebdb5015d5', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'ddb92d03-048a-4123-9d32-d2ebdb5015d5'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/563b63aa-9573-4ddb-aacb-7ccfde6b629a', u'rel': u'self'}, {u'href': u'http://localhost/nodes/563b63aa-9573-4ddb-aacb-7ccfde6b629a', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'563b63aa-9573-4ddb-aacb-7ccfde6b629a'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/5c9e9a89-0624-4243-8055-7e7d5bd2b464', u'rel': u'self'}, {u'href': u'http://localhost/nodes/5c9e9a89-0624-4243-8055-7e7d5bd2b464', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'5c9e9a89-0624-4243-8055-7e7d5bd2b464'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes [1.504761s] ... ok GET: /v1/nodes/detail?traits=CUSTOM_TRAIT_1 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6f57fd93-33d0-4a6f-b2ea-b6083f1b9705 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail [0.031012s] ... ok GOT:{u'nodes': [{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:26.788081+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]}]} GET: /v1/nodes/detail {} GOT:{u'nodes': [{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': u'foo', u'created_at': u'2019-10-11T05:54:26.788081+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class [1.568656s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': False, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:26.915904+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field [0.042975s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.033161+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:26.800867+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'description': u'useful piece', u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:26.800867+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description [0.115394s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one [0.045220s] ... ok GET: /v1/nodes/detail {} GOT:{u'nodes': [{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:27.015283+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]}]} GET: /v1/nodes/detail {} GOT:{u'nodes': [{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'cinder', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:27.015283+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface [0.221013s] ... ok GET: /v1/nodes?associated=true&maintenance=blah {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6a6546c1-6997-4022-b2bd-ff81c52e9050 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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'\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error [0.050514s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.078765+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json [0.056932s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=owner {} GOT:{u'owner': u'fred', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields [0.052099s] ... ok GET: /v1/nodes/spam/management/boot_device/supported {} GOT:{u'supported_boot_devices': [u'pxe']} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name [0.046113s] ... ok 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-5b06f4f6-d16b-46d2-93cd-33bf30ded465 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported [0.068970s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:26.958815+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:26.958815+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version [0.055140s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5cfb487a-ebdd-430d-b515-ae0968728e04 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version [0.041665s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.291699+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.291699+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version [0.123787s] ... ok GET: /v1/nodes?instance_uuid=6b9f8800-e07a-43de-b233-5d548c420264 {} GOT:{u'nodes': [{u'instance_uuid': u'6b9f8800-e07a-43de-b233-5d548c420264', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/58dc62b1-c154-49cb-bd29-29177aa10199', u'rel': u'self'}, {u'href': u'http://localhost/nodes/58dc62b1-c154-49cb-bd29-29177aa10199', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'58dc62b1-c154-49cb-bd29-29177aa10199'}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid [0.103427s] ... ok GET: /v1/nodes?instance_uuid=fake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3d4e7177-445f-4933-9e82-39b1fd22fee5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute instance_uuid. Value: 'fake'. unable to convert to uuid. Error: Expected a UUID but received fake.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid [0.044571s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.013837+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.013837+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version [0.077577s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=allocation_uuid {} GOT:{u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'allocation_uuid': u'fc387c9b-d3d6-438a-ac14-00b8ab99ad01'} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation [0.136981s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:27.093814+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.093814+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version [0.070603s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': u'reason!', u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'active', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.195542+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': True, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason [0.100342s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:{u'target_power_state': u'fake-state', u'target_provision_state': u'fake-state', u'last_error': u'fake-error', u'console_enabled': False, u'provision_updated_at': u'2000-01-01T00:00:00+00:00', u'power_state': u'fake-state', u'provision_state': u'fake-state'} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states [0.085058s] ... ok GET: /v1/nodes/eggs/states {} GOT:{u'target_power_state': u'fake-state', u'target_provision_state': u'fake-state', u'last_error': u'fake-error', u'console_enabled': False, u'provision_updated_at': u'1971-03-09T00:00:00+00:00', u'power_state': u'fake-state', u'provision_state': u'fake-state'} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name [0.091042s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': u'available', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:27.503682+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': u'available', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': u'fish', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:27.503682+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name [0.096272s] ... ok GET: /v1/nodes {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'target_provision_state': None, u'provision_updated_at': None, u'power_state': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:27.444542+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:27.444542+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version [0.114791s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version [0.047538s] ... ok GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-990844ed-aed3-43a4-9c95-849157cb4259 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found [0.073309s] ... ok GET: /v1/nodes?sort_key=uuid {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:26.926228+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': u'available', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'target_provision_state': None, u'provision_updated_at': None, u'power_state': None, u'inspection_started_at': u'2015-03-18T19:20:00+00:00', u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:26.926228+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection [0.138059s] ... ok GET: /v1/nodes?associated=true&maintenance=false {} GOT:{u'nodes': [{u'instance_uuid': u'cd70ae4f-7e0f-478a-938e-12bd7fe1eda6', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/b5f8402d-0fed-4c6a-94f4-e8243cd5324f', u'rel': u'self'}, {u'href': u'http://localhost/nodes/b5f8402d-0fed-4c6a-94f4-e8243cd5324f', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'b5f8402d-0fed-4c6a-94f4-e8243cd5324f'}, {u'instance_uuid': u'e5618590-ef3c-468a-8d60-4f466bb03a43', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/fb927b86-0c7a-4a15-8160-4636f8e0d1d8', u'rel': u'self'}, {u'href': u'http://localhost/nodes/fb927b86-0c7a-4a15-8160-4636f8e0d1d8', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'fb927b86-0c7a-4a15-8160-4636f8e0d1d8'}, {u'instance_uuid': u'eed8890c-2d4e-4436-be76-eaa2220aadce', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/8e7f2296-96d6-4a85-825a-abe5ca6ff8f6', u'rel': u'self'}, {u'href': u'http://localhost/nodes/8e7f2296-96d6-4a85-825a-abe5ca6ff8f6', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'8e7f2296-96d6-4a85-825a-abe5ca6ff8f6'}, {u'instance_uuid': u'eed4e4eb-6674-449e-b122-3fdf24839739', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/d921c217-32bb-4912-8f01-5230f295f042', u'rel': u'self'}, {u'href': u'http://localhost/nodes/d921c217-32bb-4912-8f01-5230f295f042', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'd921c217-32bb-4912-8f01-5230f295f042'}]} GET: /v1/nodes?associated=true&maintenance=true {} GOT:{u'nodes': [{u'instance_uuid': u'e204700f-7a9b-45a9-9102-71098be2c570', u'maintenance': True, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/nodes?associated=true&maintenance=TruE {} GOT:{u'nodes': [{u'instance_uuid': u'e204700f-7a9b-45a9-9102-71098be2c570', u'maintenance': True, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated [0.329348s] ... ok GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/073f82db-baca-4f8a-8e60-0a364af84781', u'rel': u'self'}, {u'href': u'http://localhost/nodes/073f82db-baca-4f8a-8e60-0a364af84781', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'073f82db-baca-4f8a-8e60-0a364af84781'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/1e5a0275-708b-4588-bd55-052dc1e2d9b3', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1e5a0275-708b-4588-bd55-052dc1e2d9b3', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'1e5a0275-708b-4588-bd55-052dc1e2d9b3'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/6b7fbf9e-86e1-4d07-ba3d-d2608bc4d97d', u'rel': u'self'}, {u'href': u'http://localhost/nodes/6b7fbf9e-86e1-4d07-ba3d-d2608bc4d97d', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'6b7fbf9e-86e1-4d07-ba3d-d2608bc4d97d'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key [0.114383s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'inspecting', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:27.540318+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'inspect wait', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:27.540318+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions [0.070587s] ... ok GET: /v1/nodes {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/073e4279-4a48-46ba-a968-74d48f27f03c', u'rel': u'self'}, {u'href': u'http://localhost/nodes/073e4279-4a48-46ba-a968-74d48f27f03c', u'rel': u'bookmark'}], u'name': u'node-0', u'power_state': None, u'provision_state': u'available', u'uuid': u'073e4279-4a48-46ba-a968-74d48f27f03c'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/7e40988f-f1d9-46f9-894d-9bc336f86121', u'rel': u'self'}, {u'href': u'http://localhost/nodes/7e40988f-f1d9-46f9-894d-9bc336f86121', u'rel': u'bookmark'}], u'name': u'node-1', u'power_state': None, u'provision_state': u'available', u'uuid': u'7e40988f-f1d9-46f9-894d-9bc336f86121'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/103b42be-0547-4593-8fa0-6c941b6d5c22', u'rel': u'self'}, {u'href': u'http://localhost/nodes/103b42be-0547-4593-8fa0-6c941b6d5c22', u'rel': u'bookmark'}], u'name': u'node-2', u'power_state': None, u'provision_state': u'available', u'uuid': u'103b42be-0547-4593-8fa0-6c941b6d5c22'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/7782512e-7368-4403-87fd-5072bbf990ad', u'rel': u'self'}, {u'href': u'http://localhost/nodes/7782512e-7368-4403-87fd-5072bbf990ad', u'rel': u'bookmark'}], u'name': u'node-3', u'power_state': None, u'provision_state': u'available', u'uuid': u'7782512e-7368-4403-87fd-5072bbf990ad'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/7501935f-f430-4138-87e2-4f63698aa2f0', u'rel': u'self'}, {u'href': u'http://localhost/nodes/7501935f-f430-4138-87e2-4f63698aa2f0', u'rel': u'bookmark'}], u'name': u'node-4', u'power_state': None, u'provision_state': u'available', u'uuid': u'7501935f-f430-4138-87e2-4f63698aa2f0'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names [0.146955s] ... ok GET: /v1/nodes?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-68983259-12e8-4745-a870-20c9ab152688 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\"}"} GET: /v1/nodes?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-82656cb3-e434-4d93-9d29-92db4b1eda92 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\"}"} GET: /v1/nodes?sort_key=driver_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e66c23c3-18f2-4e35-be4d-bba798fd0a84 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_info is an invalid field for sorting\"}"} GET: /v1/nodes?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-66ea90d4-b898-458e-b75d-ad6df04a17c0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\"}"} GET: /v1/nodes?sort_key=instance_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-19374e89-61e0-4b9b-a8cb-0690cfce1474 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value instance_info is an invalid field for sorting\"}"} GET: /v1/nodes?sort_key=driver_internal_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b0e320fb-76be-4784-beea-4baa29f7ac6e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_internal_info is an invalid field for sorting\"}"} GET: /v1/nodes?sort_key=clean_step {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7ee2df6f-d603-4265-a5a0-8b95b9ee3b25 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value clean_step is an invalid field for sorting\"}"} GET: /v1/nodes?sort_key=traits {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-924944ac-3594-465c-bbc8-089d6dd95f74 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid [0.119056s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:27.525353+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': u'available', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:27.525353+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state [0.079683s] ... ok GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/9c2ee47c-fe5e-49a2-a06f-f6aa5ac43e67', u'rel': u'self'}, {u'href': u'http://localhost/nodes/9c2ee47c-fe5e-49a2-a06f-f6aa5ac43e67', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'9c2ee47c-fe5e-49a2-a06f-f6aa5ac43e67'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/aeb9cbed-d01f-44b7-ba00-f4850365ddb2', u'rel': u'self'}, {u'href': u'http://localhost/nodes/aeb9cbed-d01f-44b7-ba00-f4850365ddb2', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'aeb9cbed-d01f-44b7-ba00-f4850365ddb2'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/4844b8b0-e22b-405d-9c91-0aafc73186b3', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4844b8b0-e22b-405d-9c91-0aafc73186b3', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'4844b8b0-e22b-405d-9c91-0aafc73186b3'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/eb668347-d747-47de-bb5b-a5ea1a0c0985', u'rel': u'self'}, {u'href': u'http://localhost/nodes/eb668347-d747-47de-bb5b-a5ea1a0c0985', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'eb668347-d747-47de-bb5b-a5ea1a0c0985'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/0fa5cb91-9ccf-43f5-8919-98a6a0445075', u'rel': u'self'}, {u'href': u'http://localhost/nodes/0fa5cb91-9ccf-43f5-8919-98a6a0445075', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'0fa5cb91-9ccf-43f5-8919-98a6a0445075'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many [0.175910s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:27.599140+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version [0.042016s] ... ok GET: /v1/nodes?associated=false {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.603453+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field [0.058419s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': True, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.662212+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field [0.058669s] ... ok GET: /v1/nodes?instance_uuid=c939cc89-7887-4c9d-b9a9-22655c7480a1 {} GOT:{u'nodes': []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid [0.069121s] ... ok GET: /v1/nodes/?limit=3&associated=True {} GOT:{u'nodes': [{u'instance_uuid': u'd7db9cdd-f3ac-4704-bd6f-9dabdc87f8fa', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/7eb34789-926c-498d-a407-ea59d29e1784', u'rel': u'self'}, {u'href': u'http://localhost/nodes/7eb34789-926c-498d-a407-ea59d29e1784', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'7eb34789-926c-498d-a407-ea59d29e1784'}, {u'instance_uuid': u'2a0fa0c4-df17-4ab0-bb07-a58121600dde', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/754f1af0-4caf-41e6-b003-a155a00557dd', u'rel': u'self'}, {u'href': u'http://localhost/nodes/754f1af0-4caf-41e6-b003-a155a00557dd', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'754f1af0-4caf-41e6-b003-a155a00557dd'}, {u'instance_uuid': u'd4a493fb-8ee2-42f3-88d4-b93c6b8da139', u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/c4e36d7d-6562-418a-bfc5-e53a18aed12b', u'rel': u'self'}, {u'href': u'http://localhost/nodes/c4e36d7d-6562-418a-bfc5-e53a18aed12b', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'c4e36d7d-6562-418a-bfc5-e53a18aed12b'}], u'next': u'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=c4e36d7d-6562-418a-bfc5-e53a18aed12b'} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association [0.115768s] ... ok GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/08a1a365-6960-4538-9f64-10a02b2734af', u'rel': u'self'}, {u'href': u'http://localhost/nodes/08a1a365-6960-4538-9f64-10a02b2734af', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'08a1a365-6960-4538-9f64-10a02b2734af'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/1374b1f3-d980-4ed1-ad48-02607f96a899', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1374b1f3-d980-4ed1-ad48-02607f96a899', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'1374b1f3-d980-4ed1-ad48-02607f96a899'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/e6b5d679-9eb4-4c18-8463-3bca894d3a68', u'rel': u'self'}, {u'href': u'http://localhost/nodes/e6b5d679-9eb4-4c18-8463-3bca894d3a68', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'e6b5d679-9eb4-4c18-8463-3bca894d3a68'}]} GET: /v1/nodes?associated=FALSE {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.797403+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field [0.067546s] ... ok GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/08a1a365-6960-4538-9f64-10a02b2734af', u'rel': u'self'}, {u'href': u'http://localhost/nodes/08a1a365-6960-4538-9f64-10a02b2734af', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'08a1a365-6960-4538-9f64-10a02b2734af'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/1374b1f3-d980-4ed1-ad48-02607f96a899', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1374b1f3-d980-4ed1-ad48-02607f96a899', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'1374b1f3-d980-4ed1-ad48-02607f96a899'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/e6b5d679-9eb4-4c18-8463-3bca894d3a68', u'rel': u'self'}, {u'href': u'http://localhost/nodes/e6b5d679-9eb4-4c18-8463-3bca894d3a68', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'e6b5d679-9eb4-4c18-8463-3bca894d3a68'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive [0.284842s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:{u'target_power_state': u'fake-state', u'target_provision_state': u'fake-state', u'last_error': u'fake-error', u'console_enabled': False, u'raid_config': {u'foo': u'bar'}, u'provision_updated_at': u'2000-01-01T00:00:00+00:00', u'power_state': u'fake-state', u'provision_state': u'fake-state', u'target_raid_config': {u'foo': u'bar'}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid [0.052426s] ... ok GET: /v1/nodes/6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d', u'rel': u'self'}, {u'href': u'http://localhost/nodes/6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'active', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.644234+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': True, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/6bd46de0-d6e8-4d9a-8947-b6e6c9a3bd6d/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/08818c98-92fd-493d-bc47-53ea793c0707 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/08818c98-92fd-493d-bc47-53ea793c0707', u'rel': u'self'}, {u'href': u'http://localhost/nodes/08818c98-92fd-493d-bc47-53ea793c0707', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/08818c98-92fd-493d-bc47-53ea793c0707/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/08818c98-92fd-493d-bc47-53ea793c0707/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'active', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'08818c98-92fd-493d-bc47-53ea793c0707', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/08818c98-92fd-493d-bc47-53ea793c0707/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/08818c98-92fd-493d-bc47-53ea793c0707/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.669373+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/08818c98-92fd-493d-bc47-53ea793c0707/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/08818c98-92fd-493d-bc47-53ea793c0707/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/08818c98-92fd-493d-bc47-53ea793c0707/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/08818c98-92fd-493d-bc47-53ea793c0707/ports', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected [0.064654s] ... ok GET: /v1/nodes/validate?node=spam {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f9f5575a-5fa0-4add-a3b9-0b721821bda0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported [0.053672s] ... ok GET: /v1/nodes/detail?limit=3&associated=true {} GOT:{u'nodes': [{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/a2dc9ef4-ed7f-4af8-96d7-7a85c6429583', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a2dc9ef4-ed7f-4af8-96d7-7a85c6429583', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'a2dc9ef4-ed7f-4af8-96d7-7a85c6429583', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': u'af0e59ec-65e4-4cdd-ad87-fdfd340b55d6', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:27.885215+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/a2dc9ef4-ed7f-4af8-96d7-7a85c6429583/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a2dc9ef4-ed7f-4af8-96d7-7a85c6429583/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}}, {u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/84991fad-8955-4abb-ad38-78731d8a1409', u'rel': u'self'}, {u'href': u'http://localhost/nodes/84991fad-8955-4abb-ad38-78731d8a1409', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'84991fad-8955-4abb-ad38-78731d8a1409', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': u'2769e616-19fe-4b64-be20-08757c6026cc', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:27.889956+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/84991fad-8955-4abb-ad38-78731d8a1409/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/84991fad-8955-4abb-ad38-78731d8a1409/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}}, {u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/48175efe-6406-4901-ae14-764f7ee913ad', u'rel': u'self'}, {u'href': u'http://localhost/nodes/48175efe-6406-4901-ae14-764f7ee913ad', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'48175efe-6406-4901-ae14-764f7ee913ad', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': u'8cb4abe8-5257-457e-9ce6-f69037b5c32c', u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:27.894565+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/48175efe-6406-4901-ae14-764f7ee913ad/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/48175efe-6406-4901-ae14-764f7ee913ad/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}}], u'next': u'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=48175efe-6406-4901-ae14-764f7ee913ad'} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail [0.105652s] ... ok GET: /v1/nodes/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:{u'portgroups': [{u'address': u'52:54:00:cf:2d:30', u'uuid': u'1eb14442-a658-45b9-be89-4b54ef96e02d', u'links': [{u'href': u'http://localhost/v1/portgroups/1eb14442-a658-45b9-be89-4b54ef96e02d', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/1eb14442-a658-45b9-be89-4b54ef96e02d', u'rel': u'bookmark'}], u'name': u'pg-0'}, {u'address': u'52:54:00:cf:2d:31', u'uuid': u'344eb4af-f3ef-412a-8983-07696d259f75', u'links': [{u'href': u'http://localhost/v1/portgroups/344eb4af-f3ef-412a-8983-07696d259f75', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/344eb4af-f3ef-412a-8983-07696d259f75', u'rel': u'bookmark'}], u'name': u'pg-1'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} GOT:{u'portgroups': [{u'address': u'52:54:00:cf:2d:30', u'uuid': u'1eb14442-a658-45b9-be89-4b54ef96e02d', u'links': [{u'href': u'http://localhost/v1/portgroups/1eb14442-a658-45b9-be89-4b54ef96e02d', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/1eb14442-a658-45b9-be89-4b54ef96e02d', u'rel': u'bookmark'}], u'name': u'pg-0'}], u'next': u'http://localhost/v1/portgroups?sort_dir=asc&sort_key=id&limit=1&marker=1eb14442-a658-45b9-be89-4b54ef96e02d'} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource [0.129534s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:28.038012+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions [0.056074s] ... ok GET: /v1/nodes/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3e4e6dc8-b701-449d-aee3-770c022654ae X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node ports could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid [0.046445s] ... ok GOT:{} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid [0.085604s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:{u'connectors': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors', u'rel': u'bookmark'}], u'targets': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets', u'rel': u'bookmark'}], u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource [0.053594s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'ssh_password': u'******', u'ssh_key_contents': u'******'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:28.141091+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ssh_creds_masked [0.053300s] ... ok GET: /v1/nodes/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface [0.054116s] ... ok GET: /v1/nodes/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3fcbe778-371c-41c9-914b-bb4f25daaedf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid [0.048459s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid [0.032753s] ... ok 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-ced62e73-e87e-41bb-a204-0f5b2a84e9b6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:28.332270+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid [0.068523s] ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4a67b3f6-be4b-4114-b057-406df3d93683 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version [0.045709s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:27.705972+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:27.705972+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version [0.068774s] ... ok GET: /v1/nodes {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one [0.118872s] ... ok GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:28.454208+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link [0.085276s] ... ok GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a480e6a7-ef93-433a-8533-c81521387717 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found [0.049623s] ... ok GET: /v1/nodes/volume/targets {} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.978496+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:27.978496+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version [0.086012s] ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cb56562b-ed74-4544-945f-0af2acec70e3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid [0.045442s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-085cbe3d-d0c4-4993-8b2a-c2023bb45ffd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:28.395998+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root [0.061011s] ... ok PATCH: /v1/nodes/7156cd08-e29e-4e6d-b122-65a555e0298f [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-fa9e9b94-1182-4ce4-9669-23f9db590e7f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 7156cd08-e29e-4e6d-b122-65a555e0298f can not be updated while a state transition is in progress.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning [0.061347s] ... ok PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'value': 'i am invalid', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6b9fc465-01d4-4843-a6ff-47e670e6fbfe 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name 'i am invalid'\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid [0.081503s] ... ok PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'value': 'guido-van-rossum', 'op': 'add'}] PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ac9ea7d-352a-469c-aeff-41f3da644aef X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "available", "uuid": "deadbeef-0000-1111-2222-333333333333", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:28.613367+00:00", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok [0.109950s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:28.063593+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:28.063593+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version [0.097862s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-170ec3eb-f062-4aab-8412-17c4c92c5ff8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent [0.060740s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:27.894476+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link [0.043275s] ... ok GET: /v1/nodes/123~123/ports {} GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"description\": \"Expected a logical name or UUID but received 123~123.\", \"title\": \"Bad Request\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident [0.024349s] ... ok GET: /v1/nodes?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-52336082-384a-4111-bdac-0ac5be400537 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed [0.027524s] ... ok PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'value': '', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dca08eb9-40f2-4280-9eed-27e4bd0a2538 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name ''\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid [0.046143s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'value': 'Guido Van Error', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-819064c2-054c-46c7-84ca-b6a9c68a62c2 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid [0.055188s] ... ok PATCH: /v1/nodes/d714ebc6-7b7e-4454-90e7-5d6e82cb6935 [{'path': '/conductor', 'value': 'why care', 'op': 'replace'}] GET: /v1/nodes/validate?node=spam {} GOT:{} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name [0.043466s] ... ok GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-92c5a04a-227b-45aa-9e79-a8a3324068e9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found [0.034255s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0ce6e773-5465-41a1-b97c-c8f0ccd50a42 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/conductor' is an internal attribute and can not be updated\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden [0.058595s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:{u'targets': [{u'boot_index': 0, u'uuid': u'793ddb17-065f-4071-814e-03f969bfe063', u'links': [{u'href': u'http://localhost/v1/volume/targets/793ddb17-065f-4071-814e-03f969bfe063', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/793ddb17-065f-4071-814e-03f969bfe063', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 1, u'uuid': u'48fb967f-0960-4e44-9746-13e8a57da5c4', u'links': [{u'href': u'http://localhost/v1/volume/targets/48fb967f-0960-4e44-9746-13e8a57da5c4', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/48fb967f-0960-4e44-9746-13e8a57da5c4', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} GOT:{u'targets': [{u'boot_index': 0, u'uuid': u'793ddb17-065f-4071-814e-03f969bfe063', u'links': [{u'href': u'http://localhost/v1/volume/targets/793ddb17-065f-4071-814e-03f969bfe063', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/793ddb17-065f-4071-814e-03f969bfe063', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}], u'next': u'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=1&marker=793ddb17-065f-4071-814e-03f969bfe063'} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource [0.085117s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group [0.039639s] ... ok 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-e0748790-dc37-4054-8dcd-fbbd86c52ee4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:28.191447+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok [0.064490s] ... ok PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'value': '', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-621d5b29-6f74-44ec-9987-de74c3ffbd8e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable [0.046217s] ... ok PATCH: /v1/nodes/586c181e-e282-4edc-90b6-28e5981230e2 [{'path': '/name', 'value': 'this-is-my-node', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e38086ad-d09b-49e5-a9a8-d6a7229ce0e5 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"this-is-my-node\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name [0.050106s] ... ok PATCH: /v1/nodes/98fad3ab-1452-475a-a70b-877d6f9635de [{'path': '/fault', 'value': 'why care', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2b813a64-87f4-4dab-ab03-7b025c6987de 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/fault' is an internal attribute and can not be updated\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden [0.042791s] ... ok 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-d212da1d-5fc7-4176-94a8-709f8820ebd7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id [0.036026s] ... 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-ec8b60df-eaf9-4cdb-b328-02dc5fa467bd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/chassis_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'chassis_id'\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id [0.043028s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-097cdfa4-2697-4c1c-919c-d094dfa5766d 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version [0.043771s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'value': 'guido-van-rossum', 'op': 'replace'}] 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-367d0b6e-d04c-48c8-8d57-444b2509b7d1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail [0.055848s] ... ok 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-bbc85b5e-d70b-45ad-8171-1d7ea6b790a9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/chassis_id', 'value': u'1', 'op': 'replace'}'. Reason: can't replace non-existent object 'chassis_id'\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id [0.045042s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/power_state', 'value': 'fake-state', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0289044a-0522-4c45-a7b3-90565e5bbc6d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/power_state' is an internal attribute and can not be updated\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field [0.035296s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/maintenance', 'value': 'true', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f02543b4-0c3f-44c3-bd0d-95c6724d77d8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:28.656862+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance [0.064713s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/provision_updated_at', 'value': '2000-01-01 00:00:00', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2aff85e1-d9e0-46a9-8128-ea6aafbd4b4a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/provision_updated_at' is an internal attribute and can not be updated\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at [0.067271s] ... 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-ee293720-676b-41fa-8ce3-656747a958be X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported [0.040270s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d88884ba-b092-4c3b-9f5d-95f4a8599832 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "available", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": "node-57.1", "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:28.834926+00:00", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok [0.124243s] ... ok PATCH: /v1/nodes/517dcf18-fa2c-495c-a139-351f12e3d388 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-38193226-55e6-4b27-8abc-734e8626aeb0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"target_power_state": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/517dcf18-fa2c-495c-a139-351f12e3d388", "rel": "self"}, {"href": "http://localhost/nodes/517dcf18-fa2c-495c-a139-351f12e3d388", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/517dcf18-fa2c-495c-a139-351f12e3d388/states", "rel": "self"}, {"href": "http://localhost/nodes/517dcf18-fa2c-495c-a139-351f12e3d388/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "uuid": "517dcf18-fa2c-495c-a139-351f12e3d388", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": null, "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/517dcf18-fa2c-495c-a139-351f12e3d388/volume", "rel": "self"}, {"href": "http://localhost/nodes/517dcf18-fa2c-495c-a139-351f12e3d388/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:28.839004+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/517dcf18-fa2c-495c-a139-351f12e3d388/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/517dcf18-fa2c-495c-a139-351f12e3d388/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/517dcf18-fa2c-495c-a139-351f12e3d388/ports", "rel": "self"}, {"href": "http://localhost/nodes/517dcf18-fa2c-495c-a139-351f12e3d388/ports", "rel": "bookmark"}], "console_interface": null, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group [0.054653s] ... ok PATCH: /v1/nodes/2c12638e-4b74-49c3-92b4-facd4bc40d3f [{'path': '/description', 'value': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-31509730-783e-4813-9066-b39f43522bc1 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot update node with description exceeding 4096 characters\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize [0.041771s] ... ok 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-962212b8-5d32-487a-98b7-d1015d4da6b5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": "2013-12-03T06:20:41.184720+00:00", "maintenance_reason": null, "provision_state": "available", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": "node-57.1", "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:28.926345+00:00", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name [0.057607s] ... ok PATCH: /v1/nodes/0068d964-b2cc-4d97-839b-5a5f69b59efe [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a377924-0340-4b0e-b6b9-7e8f05cbe3e6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/0068d964-b2cc-4d97-839b-5a5f69b59efe", "rel": "self"}, {"href": "http://localhost/nodes/0068d964-b2cc-4d97-839b-5a5f69b59efe", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/0068d964-b2cc-4d97-839b-5a5f69b59efe/states", "rel": "self"}, {"href": "http://localhost/nodes/0068d964-b2cc-4d97-839b-5a5f69b59efe/states", "rel": "bookmark"}], "provision_state": "available", "clean_step": {}, "uuid": "0068d964-b2cc-4d97-839b-5a5f69b59efe", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2019-10-11T05:54:28.993999+00:00", "ports": [{"href": "http://localhost/v1/nodes/0068d964-b2cc-4d97-839b-5a5f69b59efe/ports", "rel": "self"}, {"href": "http://localhost/nodes/0068d964-b2cc-4d97-839b-5a5f69b59efe/ports", "rel": "bookmark"}], "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class [0.054691s] ... ok 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-760d8ade-e629-4f84-b77b-3c950a5acb1d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/driver' is a mandatory attribute and can not be removed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field [0.045400s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/console_enabled', 'value': True, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-88834f28-d809-4491-b78b-e311d414a814 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/console_enabled' is an internal attribute and can not be updated\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled [0.102943s] ... ok PATCH: /v1/nodes/f498558f-152f-4b32-a073-1c450cea7b04 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b1717a48-817d-4c21-bd4a-77c36889a614 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api [0.044244s] ... ok PATCH: /v1/nodes/node-57.1 [{'path': '/maintenance', 'value': 'true', 'op': 'replace'}] GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:28.162033+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:28.162033+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version [0.065826s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:28.227495+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field [0.063255s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'conductor': u'fake.conductor', u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:28.290946+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'owner': u'akindofmagic', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present [0.051334s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:28.342052+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:28.342052+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version [0.054855s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:28.409922+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': None, u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'rescue_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': None, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:28.409922+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'protected': False, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version [0.087409s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:28.485135+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'vendor_interface': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': None, u'boot_interface': None, u'reservation': None, u'management_interface': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:28.485135+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': None, u'driver_internal_info': {u'private_state': u'secret value'}, u'chassis_uuid': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version [0.083202s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:{u'ports': [{u'uuid': u'03810bc0-9685-4f52-bb64-eba951847108', u'links': [{u'href': u'http://localhost/v1/ports/03810bc0-9685-4f52-bb64-eba951847108', u'rel': u'self'}, {u'href': u'http://localhost/ports/03810bc0-9685-4f52-bb64-eba951847108', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}, {u'uuid': u'924df3fe-5ead-4706-b298-b584aca1d7ed', u'links': [{u'href': u'http://localhost/v1/ports/924df3fe-5ead-4706-b298-b584aca1d7ed', u'rel': u'self'}, {u'href': u'http://localhost/ports/924df3fe-5ead-4706-b298-b584aca1d7ed', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} GOT:{u'ports': [{u'uuid': u'03810bc0-9685-4f52-bb64-eba951847108', u'links': [{u'href': u'http://localhost/v1/ports/03810bc0-9685-4f52-bb64-eba951847108', u'rel': u'self'}, {u'href': u'http://localhost/ports/03810bc0-9685-4f52-bb64-eba951847108', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}], u'next': u'http://localhost/v1/ports?sort_dir=asc&sort_key=id&limit=1&marker=03810bc0-9685-4f52-bb64-eba951847108'} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource [0.169100s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:28.775936+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link [0.082178s] ... ok 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-b88cc4d4-78a5-4588-b435-c3ad2784103f 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed [0.065011s] ... ok GET: /v1/nodes?sort_key=resource_class {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/27d4482a-c0a9-4174-b596-2eec0d14cd98', u'rel': u'self'}, {u'href': u'http://localhost/nodes/27d4482a-c0a9-4174-b596-2eec0d14cd98', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'27d4482a-c0a9-4174-b596-2eec0d14cd98'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/4bcebbb5-9ad9-4765-a06b-3908a3b412f6', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4bcebbb5-9ad9-4765-a06b-3908a3b412f6', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'4bcebbb5-9ad9-4765-a06b-3908a3b412f6'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/c76dba88-e1d5-4a12-b2d7-ae3f30051a2c', u'rel': u'self'}, {u'href': u'http://localhost/nodes/c76dba88-e1d5-4a12-b2d7-ae3f30051a2c', u'rel': u'bookmark'}], u'name': None, u'power_state': None, u'provision_state': u'available', u'uuid': u'c76dba88-e1d5-4a12-b2d7-ae3f30051a2c'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed [0.170893s] ... ok GET: /v1/nodes?associated=False&limit=2 {} GOT:{u'nodes': [{u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/a72162c3-227c-4daf-895d-16442d1469a0', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a72162c3-227c-4daf-895d-16442d1469a0', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'a72162c3-227c-4daf-895d-16442d1469a0'}, {u'instance_uuid': None, u'maintenance': False, u'links': [{u'href': u'http://localhost/v1/nodes/ac09a839-9782-4315-a4e0-9b843cb1d9d6', u'rel': u'self'}, {u'href': u'http://localhost/nodes/ac09a839-9782-4315-a4e0-9b843cb1d9d6', u'rel': u'bookmark'}], u'power_state': None, u'provision_state': None, u'uuid': u'ac09a839-9782-4315-a4e0-9b843cb1d9d6'}], u'next': u'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=2&marker=ac09a839-9782-4315-a4e0-9b843cb1d9d6'} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit [0.197805s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'41cf3f7e-b5a8-4a2a-82e6-25a447a8845c', u'links': [{u'href': u'http://localhost/v1/volume/connectors/41cf3f7e-b5a8-4a2a-82e6-25a447a8845c', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/41cf3f7e-b5a8-4a2a-82e6-25a447a8845c', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-0'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'52ed4ade-ac9b-4ba5-8c43-26cb9d16a806', u'links': [{u'href': u'http://localhost/v1/volume/connectors/52ed4ade-ac9b-4ba5-8c43-26cb9d16a806', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/52ed4ade-ac9b-4ba5-8c43-26cb9d16a806', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-1'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'41cf3f7e-b5a8-4a2a-82e6-25a447a8845c', u'links': [{u'href': u'http://localhost/v1/volume/connectors/41cf3f7e-b5a8-4a2a-82e6-25a447a8845c', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/41cf3f7e-b5a8-4a2a-82e6-25a447a8845c', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-0'}], u'next': u'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=1&marker=41cf3f7e-b5a8-4a2a-82e6-25a447a8845c'} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource [0.156665s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeObject.test_node_init [0.047403s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'add'}] POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-c6435a51-d376-4965-bfa2-d24d7e3acecf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2000-01-01T00:00:00+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2000-01-01T00:00:00+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node [0.086401s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6b57f8f-0607-418a-a197-90bb6f751008 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "available", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": "node-57.1", "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:29.108382+00:00", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name [0.093820s] ... ok 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-d5125e5d-5904-4750-b175-5c34658395ca 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The reset_interfaces parameter can only be used when changing the node's driver.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver [0.076562s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-35ed2453-91db-4987-824b-8cd0345304ce X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/chassis_id) to the root of the resource is not allowed\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id [0.063911s] ... ok PATCH: /v1/nodes/2cd19828-060d-42c0-b5c0-3027a8f439fb [{'path': '/network_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7991a422-1a60-45ac-9d6c-6ba4885c9d71 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/2cd19828-060d-42c0-b5c0-3027a8f439fb", "rel": "self"}, {"href": "http://localhost/nodes/2cd19828-060d-42c0-b5c0-3027a8f439fb", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/2cd19828-060d-42c0-b5c0-3027a8f439fb/states", "rel": "self"}, {"href": "http://localhost/nodes/2cd19828-060d-42c0-b5c0-3027a8f439fb/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "2cd19828-060d-42c0-b5c0-3027a8f439fb", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/2cd19828-060d-42c0-b5c0-3027a8f439fb/volume", "rel": "self"}, {"href": "http://localhost/nodes/2cd19828-060d-42c0-b5c0-3027a8f439fb/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.325576+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/2cd19828-060d-42c0-b5c0-3027a8f439fb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2cd19828-060d-42c0-b5c0-3027a8f439fb/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/2cd19828-060d-42c0-b5c0-3027a8f439fb/ports", "rel": "self"}, {"href": "http://localhost/nodes/2cd19828-060d-42c0-b5c0-3027a8f439fb/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface [0.114978s] ... ok POST: /v1/nodes {'instance_uuid': None, 'automated_clean': True, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-521807fd-eb3f-4f0f-80f7-aedbcce8c842 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": true, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": "noop", "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "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"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "description": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": "fake", "driver": "fake-hardware", "updated_at": null, "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"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.191073+00:00", "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"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "console_interface": "fake", "protected": false, "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': True, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': u'noop', u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': None, u'driver': u'fake-hardware', u'power_interface': u'fake', u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:29.191073+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'protected': False, u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean [0.071731s] ... ok PATCH: /v1/nodes/ecbd3650-b50a-431d-92d9-c9f77d9691a5 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dcf322b6-b874-4c51-b9dc-ddf0737acbe5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/ecbd3650-b50a-431d-92d9-c9f77d9691a5", "rel": "self"}, {"href": "http://localhost/nodes/ecbd3650-b50a-431d-92d9-c9f77d9691a5", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/ecbd3650-b50a-431d-92d9-c9f77d9691a5/states", "rel": "self"}, {"href": "http://localhost/nodes/ecbd3650-b50a-431d-92d9-c9f77d9691a5/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "uuid": "ecbd3650-b50a-431d-92d9-c9f77d9691a5", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": null, "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/ecbd3650-b50a-431d-92d9-c9f77d9691a5/volume", "rel": "self"}, {"href": "http://localhost/nodes/ecbd3650-b50a-431d-92d9-c9f77d9691a5/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.426491+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/ecbd3650-b50a-431d-92d9-c9f77d9691a5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ecbd3650-b50a-431d-92d9-c9f77d9691a5/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/ecbd3650-b50a-431d-92d9-c9f77d9691a5/ports", "rel": "self"}, {"href": "http://localhost/nodes/ecbd3650-b50a-431d-92d9-c9f77d9691a5/ports", "rel": "bookmark"}], "console_interface": null, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean [0.116349s] ... ok POST: /v1/nodes {'instance_uuid': None, 'automated_clean': True, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a7a208cc-d6ae-4a7a-9366-2204221ec825 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version [0.028875s] ... ok PATCH: /v1/nodes/c40e3b4d-240a-4dcb-8251-08023136ea55 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-56901c85-a4cb-4430-8f7d-4cb1ef264288 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api [0.075127s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-6417a1dc-bab1-4805-8653-8c7e3bf2b67a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.11 {"target_power_state": 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"}], "extra": {}, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "enroll", "clean_step": {}, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "target_provision_state": null, "provision_updated_at": null, "power_state": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:29.291277+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': u'enroll', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:29.291277+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll [0.065486s] ... ok POST: /v1/nodes {'instance_uuid': None, 'name': '', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4f861ecd-8943-4158-ab14-20a5e7a07e2c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable [0.028957s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'owner': 'bob', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0e745fc8-4250-4262-b048-8e51b5a3ac5f 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version [0.028600s] ... ok PATCH: /v1/nodes/6c34cb48-3c15-4f86-a7a5-0b81b66b56ca [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c42b7ffc-bd1d-466e-89be-24926f394f49 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/6c34cb48-3c15-4f86-a7a5-0b81b66b56ca", "rel": "self"}, {"href": "http://localhost/nodes/6c34cb48-3c15-4f86-a7a5-0b81b66b56ca", "rel": "bookmark"}], "target_provision_state": "active", "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "deploy failed", "uuid": "6c34cb48-3c15-4f86-a7a5-0b81b66b56ca", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:29.570863+00:00", "ports": [{"href": "http://localhost/v1/nodes/6c34cb48-3c15-4f86-a7a5-0b81b66b56ca/ports", "rel": "self"}, {"href": "http://localhost/nodes/6c34cb48-3c15-4f86-a7a5-0b81b66b56ca/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail [0.115274s] ... ok PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'value': 'maintenance', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-837d8020-c855-4132-a4b7-7cfa0af6f010 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'value': 'management', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ace63802-6d4f-4a0f-92e8-095ca61d56f5 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'value': 'states', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-90e8b0a3-475f-4de7-88d1-6e8e27cf8993 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'value': 'vendor_passthru', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ce513d61-d82c-4db0-9d14-20139baa791e 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'value': 'validate', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d7aaa16f-5bf6-4850-9405-1d7979a4a0d0 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'value': 'detail', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e628969f-a619-457b-82fb-20802c565abf 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved [0.136276s] ... ok PATCH: /v1/nodes/53c8898a-4f11-4312-9366-6485cbf19f7b [{'path': '/allocation_uuid', 'value': '4862c71c-14b9-4dac-8f7f-513d4c96d5ad', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0b97bd69-6c7a-44c4-938e-18f6fb6bcd66 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/allocation_uuid' is an internal attribute and can not be updated\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden [0.044071s] ... ok PATCH: /v1/nodes/40b0a05a-7a06-4bb2-8d53-86654cd2ee58 [{'path': '/allocation_uuid', 'value': 'b9cf736e-63cb-4b53-b0e3-a4bed5391b3e', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8c78b14c-7063-4939-8abc-c3deb90bb66e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/allocation_uuid' is an internal attribute and can not be updated\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden [0.045871s] ... ok 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-2ceb014d-5c48-4030-908f-8be13a8906e3 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource [0.076714s] ... ok 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-f8d6a1f9-4ddd-4f6c-a53a-1d4b31288d8e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource [0.075257s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'conductor_group': 'foo', 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ca4016b6-41ad-4178-ad1f-cc528cf24336 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version [0.028718s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'value': 'Windows ME', 'op': 'add'}, {'path': '/name', 'value': 'Guido Van Error', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-053cb861-4aa5-4c2b-a85d-da6a66f7c09e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Windows ME'\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid [0.046884s] ... ok 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-d696e320-991a-4932-8d59-1daa14f2e5f8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource [0.060237s] ... ok 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-da5937d2-25aa-402f-afc4-978208f4acba X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/last_error' is an internal attribute and can not be updated\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field [0.034106s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'none': None, 'int': 123, 'float': 0.1, 'list': [1, 2], 'bool': True, 'str': 'foo', 'dict': {'cat': 'meow'}}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-f0294744-2579-4a45-9bd6-ca425fe05ab1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"none": null, "int": 123, "float": 0.1, "list": [1, 2], "dict": {"cat": "meow"}, "str": "foo", "bool": true}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:29.447254+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'none': None, u'int': 123, u'float': 0.1, u'list': [1, 2], u'bool': True, u'str': u'foo', u'dict': {u'cat': u'meow'}}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:29.447254+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties [0.066022s] ... ok PATCH: /v1/nodes/7a887ec8-9a1e-48b5-9360-9121914c0a24 [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a62e55e2-d600-489e-ad35-6bd6a2a7fc1d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/7a887ec8-9a1e-48b5-9360-9121914c0a24", "rel": "self"}, {"href": "http://localhost/nodes/7a887ec8-9a1e-48b5-9360-9121914c0a24", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/7a887ec8-9a1e-48b5-9360-9121914c0a24/states", "rel": "self"}, {"href": "http://localhost/nodes/7a887ec8-9a1e-48b5-9360-9121914c0a24/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "7a887ec8-9a1e-48b5-9360-9121914c0a24", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/7a887ec8-9a1e-48b5-9360-9121914c0a24/volume", "rel": "self"}, {"href": "http://localhost/nodes/7a887ec8-9a1e-48b5-9360-9121914c0a24/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.636950+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/7a887ec8-9a1e-48b5-9360-9121914c0a24/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7a887ec8-9a1e-48b5-9360-9121914c0a24/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/7a887ec8-9a1e-48b5-9360-9121914c0a24/ports", "rel": "self"}, {"href": "http://localhost/nodes/7a887ec8-9a1e-48b5-9360-9121914c0a24/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description [0.119373s] ... ok PATCH: /v1/nodes/f2f56b76-3a4a-4833-8197-64af14c196bd [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-6d1e9714-6acd-48fd-a37e-27e6dcfb1e4e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"f2f56b76-3a4a-4833-8197-64af14c196bd\\\" while it is in state \\\"inspecting\\\".\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed [0.113290s] ... ok 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-79a96ce3-e6a5-4fe6-97f7-228815239f16 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:29.935743+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid [0.070627s] ... ok PATCH: /v1/nodes/24cfaa4e-9f85-463e-b15e-ca2632262168 [{'path': '/deploy_step', 'value': 'deploy this', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-857d9dd7-bef7-440b-b7ea-58688f1af6d1 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/deploy_step' is an internal attribute and can not be updated\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden [0.048281s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-885447e4-c431-4e08-94ae-563c501cdcd6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "available", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": "node-57.1", "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:28.984863+00:00", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok [0.060953s] ... ok 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-fe22943f-104b-4e1d-9fa9-2486a837a6b7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id [0.067343s] ... ok 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-ee01ab04-caf4-46b2-871a-019621a4469f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 can not update the driver while the console is enabled. Please stop the console first.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled [0.076988s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'value': 'node-0', 'op': 'add'}, {'path': '/name', 'value': 'Guido Van Error', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-991cd662-1e6a-488e-9cb2-f0ac8950d3ce 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid [0.076122s] ... ok 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-591ca80e-9b80-4669-906e-86ffc14b3326 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource [0.075481s] ... ok PATCH: /v1/nodes/bff4676c-ffd6-44e7-9ce7-605adc461f43 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a96ba0fd-baf6-4ab9-bfa6-e6b79e0df951 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} PATCH: /v1/nodes/bff4676c-ffd6-44e7-9ce7-605adc461f43 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d444a2d2-3af2-4bb9-94d9-e4060cfdd15e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} PATCH: /v1/nodes/bff4676c-ffd6-44e7-9ce7-605adc461f43 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4309fe7c-ef9e-4db7-ab91-c7f397bc3df7 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} PATCH: /v1/nodes/bff4676c-ffd6-44e7-9ce7-605adc461f43 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-790db165-13de-414c-af41-dcee74c2102c 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} PATCH: /v1/nodes/bff4676c-ffd6-44e7-9ce7-605adc461f43 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-714cd239-eea4-4c4e-8ead-1c1e422124a5 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} PATCH: /v1/nodes/bff4676c-ffd6-44e7-9ce7-605adc461f43 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cf087152-51c6-4c9e-8797-cc7a65480069 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} PATCH: /v1/nodes/bff4676c-ffd6-44e7-9ce7-605adc461f43 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ece15f85-e4bf-4bc2-a862-f37e6a8413ac 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} PATCH: /v1/nodes/bff4676c-ffd6-44e7-9ce7-605adc461f43 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-57ced90c-a4bf-4762-8b56-9b03a9d3092a 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version [0.079593s] ... ok 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-b0b84043-b8fc-4b39-ac24-057d8dbb0648 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "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"}], "provision_state": "available", "clean_step": {}, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": "node-57.1", "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2019-10-11T05:54:29.354093+00:00", "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"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid [0.086846s] ... ok PATCH: /v1/nodes/51014157-07fe-4c50-b332-b3fa474d41d4 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ea7856ad-2862-47fc-b03c-bd9c5e43c641 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-e04dde29-b8d6-4aae-9723-385e42b5b60b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:29.513517+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:29.513517+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api [0.051436s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid [0.066563s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb2d165a-2867-4a3f-96a6-365913a7ca48 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:29.444616+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok [0.087807s] ... 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-b1c70c73-5303-41cd-95d7-e0a3b3b70b10 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid [0.036519s] ... 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-0ae5b216-8f26-40a8-b7a4-a1436c8cbb2f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid [0.049023s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:{u'foo': u'bar'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:{u'foo': u'bar'} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods [0.058309s] ... ok PATCH: /v1/nodes/d106b3ea-7754-4aa4-a1c6-ab6fbfff8634 [{'path': '/storage_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d504f167-bc23-4f80-8c5b-4e57107d95fb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/d106b3ea-7754-4aa4-a1c6-ab6fbfff8634", "rel": "self"}, {"href": "http://localhost/nodes/d106b3ea-7754-4aa4-a1c6-ab6fbfff8634", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/d106b3ea-7754-4aa4-a1c6-ab6fbfff8634/states", "rel": "self"}, {"href": "http://localhost/nodes/d106b3ea-7754-4aa4-a1c6-ab6fbfff8634/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "d106b3ea-7754-4aa4-a1c6-ab6fbfff8634", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/d106b3ea-7754-4aa4-a1c6-ab6fbfff8634/volume", "rel": "self"}, {"href": "http://localhost/nodes/d106b3ea-7754-4aa4-a1c6-ab6fbfff8634/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.613813+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/d106b3ea-7754-4aa4-a1c6-ab6fbfff8634/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d106b3ea-7754-4aa4-a1c6-ab6fbfff8634/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/d106b3ea-7754-4aa4-a1c6-ab6fbfff8634/ports", "rel": "self"}, {"href": "http://localhost/nodes/d106b3ea-7754-4aa4-a1c6-ab6fbfff8634/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface [0.059095s] ... ok PATCH: /v1/nodes/831169e6-e72e-4235-bf31-6676a648a4c5 [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-adecac2c-8dad-44ca-8d92-c06ac652a608 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": "power off", "links": [{"href": "http://localhost/v1/nodes/831169e6-e72e-4235-bf31-6676a648a4c5", "rel": "self"}, {"href": "http://localhost/nodes/831169e6-e72e-4235-bf31-6676a648a4c5", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "831169e6-e72e-4235-bf31-6676a648a4c5", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": true, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:29.672892+00:00", "ports": [{"href": "http://localhost/v1/nodes/831169e6-e72e-4235-bf31-6676a648a4c5/ports", "rel": "self"}, {"href": "http://localhost/nodes/831169e6-e72e-4235-bf31-6676a648a4c5/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance [0.053364s] ... ok PATCH: /v1/nodes/034862e3-29e4-4e44-b1df-8fea1652e405 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-56e2bafe-7b77-4074-b879-17b12272cf1e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api [0.043351s] ... ok 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-7b292815-2742-423b-9e00-f1821d851be4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported [0.035898s] ... ok 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-8e25ede7-f8ff-4b03-8568-28fa6137e4d3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method [0.034338s] ... ok PATCH: /v1/nodes/adb1f9e5-3664-4882-9dbb-fa89cd067000 [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad69bc2a-e130-433f-81fa-ccf6112faa3a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"target_power_state": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/adb1f9e5-3664-4882-9dbb-fa89cd067000", "rel": "self"}, {"href": "http://localhost/nodes/adb1f9e5-3664-4882-9dbb-fa89cd067000", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": null, "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/adb1f9e5-3664-4882-9dbb-fa89cd067000/states", "rel": "self"}, {"href": "http://localhost/nodes/adb1f9e5-3664-4882-9dbb-fa89cd067000/states", "rel": "bookmark"}], "traits": [], "provision_state": "inspecting", "clean_step": {}, "vendor_interface": null, "uuid": "adb1f9e5-3664-4882-9dbb-fa89cd067000", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": null, "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/adb1f9e5-3664-4882-9dbb-fa89cd067000/volume", "rel": "self"}, {"href": "http://localhost/nodes/adb1f9e5-3664-4882-9dbb-fa89cd067000/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2019-10-11T05:54:29.822208+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/adb1f9e5-3664-4882-9dbb-fa89cd067000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/adb1f9e5-3664-4882-9dbb-fa89cd067000/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/adb1f9e5-3664-4882-9dbb-fa89cd067000/ports", "rel": "self"}, {"href": "http://localhost/nodes/adb1f9e5-3664-4882-9dbb-fa89cd067000/ports", "rel": "bookmark"}], "console_interface": null, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed [0.102830s] ... ok PATCH: /v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413 [{'path': '/boot_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1673a0cc-2196-43b1-a94b-6f84ed8813b7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "920aef0c-c17c-4569-8516-9bcd1c194413", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.033850+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413 [{'path': '/console_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d791a93-7f02-418a-9724-ed7f5beacf18 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "920aef0c-c17c-4569-8516-9bcd1c194413", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.033850+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413 [{'path': '/deploy_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b7fde6a-1ee4-4628-8ac0-7eace37faac4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "920aef0c-c17c-4569-8516-9bcd1c194413", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.033850+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413 [{'path': '/inspect_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac5673aa-da59-49cf-a4f1-6cc522638b5d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "920aef0c-c17c-4569-8516-9bcd1c194413", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.033850+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413 [{'path': '/management_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-70c8d81a-68f5-43e0-b100-16153fbc3a71 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "920aef0c-c17c-4569-8516-9bcd1c194413", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.033850+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413 [{'path': '/power_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4fbd597-97a7-4967-bb7f-25b04f3412e9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "920aef0c-c17c-4569-8516-9bcd1c194413", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.033850+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413 [{'path': '/raid_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b995cc0d-90d1-4bcc-b331-260029e90c92 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "920aef0c-c17c-4569-8516-9bcd1c194413", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.033850+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413 [{'path': '/vendor_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-815e4ed9-2c5e-4d18-b00e-b0fbfcf48281 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "920aef0c-c17c-4569-8516-9bcd1c194413", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.033850+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "self"}, {"href": "http://localhost/nodes/920aef0c-c17c-4569-8516-9bcd1c194413/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields [0.314427s] ... ok PATCH: /v1/nodes/9c247b7d-02a3-4cb5-9037-0ee5fd4a4e7e [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48325bcd-ac04-423a-a955-9ce3fb22807b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": "power off", "links": [{"href": "http://localhost/v1/nodes/9c247b7d-02a3-4cb5-9037-0ee5fd4a4e7e", "rel": "self"}, {"href": "http://localhost/nodes/9c247b7d-02a3-4cb5-9037-0ee5fd4a4e7e", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "9c247b7d-02a3-4cb5-9037-0ee5fd4a4e7e", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.343158+00:00", "ports": [{"href": "http://localhost/v1/nodes/9c247b7d-02a3-4cb5-9037-0ee5fd4a4e7e/ports", "rel": "self"}, {"href": "http://localhost/nodes/9c247b7d-02a3-4cb5-9037-0ee5fd4a4e7e/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition [0.107139s] ... ok 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-6913ed81-dc1e-4105-9963-b527fbeaba57 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Fake Error\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver [0.103091s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver_info/this', 'value': 'foo', 'op': 'add'}, {'path': '/driver_info/that', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4c6b9a16-9ee0-4b57-ad34-b2c42ae98a46 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Fake Error Message\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info [0.088363s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-89d9a43a-6e8f-4576-abed-3a09de398f3e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 [0.032791s] ... 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-8f0476b2-23fe-4838-a473-10e1ea2d735b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\"}"} 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-b7015ca0-8a8b-4a9f-9b9d-b118cebf0630 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\"}"} 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-2e6cfaad-e889-4466-9977-9f4968b21816 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state [0.077883s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'clean_steps': [{'interface': 'deploy', 'step': 'upgrade_firmware'}], 'target': 'clean'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-9ceca7e9-9ea5-459f-86f5-749f69016b71 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean [0.117484s] ... ok 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-14033b51-6b3e-42b7-a5f5-057500442a87 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 [0.079277s] ... ok 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-efe73771-bb20-481d-a3dc-f96b2e3249a2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available [0.072747s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power off'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-482452af-c18a-421f-8e4d-ccd80ee21989 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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\\\".\"}"} 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-c152ee5c-d4f9-4ab9-9da9-af33633e6c56 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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\\\".\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned [0.067727s] ... ok PATCH: /v1/nodes/5569b710-44de-4858-9a0d-403b022d954c [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2fbdf63c-6795-4b53-9e63-c84e64ee3ac4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "5569b710-44de-4858-9a0d-403b022d954c", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.927907+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/5569b710-44de-4858-9a0d-403b022d954c [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f9c86b8-3ab7-4447-a27f-559c798e7f4a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "5569b710-44de-4858-9a0d-403b022d954c", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.927907+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/5569b710-44de-4858-9a0d-403b022d954c [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbe24a0e-7ed7-437d-b713-91d46b541bd9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "5569b710-44de-4858-9a0d-403b022d954c", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.927907+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/5569b710-44de-4858-9a0d-403b022d954c [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbe3a32b-1487-4d4c-8bc4-7c3ee16483ad X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "5569b710-44de-4858-9a0d-403b022d954c", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.927907+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/5569b710-44de-4858-9a0d-403b022d954c [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-94582373-738a-4426-b045-54fa103889bd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "5569b710-44de-4858-9a0d-403b022d954c", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.927907+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/5569b710-44de-4858-9a0d-403b022d954c [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0853be1d-2fe9-4343-aebb-404f81dcce51 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "5569b710-44de-4858-9a0d-403b022d954c", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.927907+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/5569b710-44de-4858-9a0d-403b022d954c [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e122a2bd-2abc-4909-9cbd-5e028d927eb1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "5569b710-44de-4858-9a0d-403b022d954c", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.927907+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} PATCH: /v1/nodes/5569b710-44de-4858-9a0d-403b022d954c [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5a25b004-e92b-4043-b458-52966be051e2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "5569b710-44de-4858-9a0d-403b022d954c", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.927907+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "self"}, {"href": "http://localhost/nodes/5569b710-44de-4858-9a0d-403b022d954c/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields [0.319884s] ... ok PATCH: /v1/nodes/296dbd62-b398-4688-bb61-3b764972971a [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9f0fa594-ea16-41eb-ae68-a64d2db46c38 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api [0.061955s] ... ok 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-f6142c96-6db6-454b-be14-391a4c5db0b1 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver [0.056518s] ... ok 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-c0fed503-9803-4549-9403-8bd7f372023a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver [0.081672s] ... ok 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-ab00cbc4-86a1-4830-978c-464214c96868 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver [0.058108s] ... ok 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-0297d1e8-6ec5-476f-b150-366be796c5c1 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver [0.038107s] ... ok 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-9c868fa5-6753-4c35-a944-3d1800e2023a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver [0.050586s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'clean_steps': 'foo', 'target': 'provide'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-78da1a43-899f-4788-be3c-0c910defe292 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is only valid when setting target provision state to clean\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean [0.050045s] ... ok PATCH: /v1/nodes/cc4710c5-7821-4767-9dac-1be8b9b380a5 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c9d03a2b-b7c3-45c8-89e6-55184b601aec X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/cc4710c5-7821-4767-9dac-1be8b9b380a5", "rel": "self"}, {"href": "http://localhost/nodes/cc4710c5-7821-4767-9dac-1be8b9b380a5", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/cc4710c5-7821-4767-9dac-1be8b9b380a5/states", "rel": "self"}, {"href": "http://localhost/nodes/cc4710c5-7821-4767-9dac-1be8b9b380a5/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "uuid": "cc4710c5-7821-4767-9dac-1be8b9b380a5", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/cc4710c5-7821-4767-9dac-1be8b9b380a5/volume", "rel": "self"}, {"href": "http://localhost/nodes/cc4710c5-7821-4767-9dac-1be8b9b380a5/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.291233+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/cc4710c5-7821-4767-9dac-1be8b9b380a5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cc4710c5-7821-4767-9dac-1be8b9b380a5/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/cc4710c5-7821-4767-9dac-1be8b9b380a5/ports", "rel": "self"}, {"href": "http://localhost/nodes/cc4710c5-7821-4767-9dac-1be8b9b380a5/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner [0.073476s] ... ok 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-cfe4746d-1419-4445-a4ce-3db3bf55a0b9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy [0.037813s] ... ok PATCH: /v1/nodes/179dc3a0-6e9c-450a-a2f3-c59673e5c79c [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a07b7ff-488c-4454-a9ad-25f16b8a526b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/179dc3a0-6e9c-450a-a2f3-c59673e5c79c", "rel": "self"}, {"href": "http://localhost/nodes/179dc3a0-6e9c-450a-a2f3-c59673e5c79c", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/179dc3a0-6e9c-450a-a2f3-c59673e5c79c/states", "rel": "self"}, {"href": "http://localhost/nodes/179dc3a0-6e9c-450a-a2f3-c59673e5c79c/states", "rel": "bookmark"}], "traits": [], "provision_state": "active", "clean_step": {}, "vendor_interface": null, "uuid": "179dc3a0-6e9c-450a-a2f3-c59673e5c79c", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/179dc3a0-6e9c-450a-a2f3-c59673e5c79c/volume", "rel": "self"}, {"href": "http://localhost/nodes/179dc3a0-6e9c-450a-a2f3-c59673e5c79c/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.364341+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/179dc3a0-6e9c-450a-a2f3-c59673e5c79c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/179dc3a0-6e9c-450a-a2f3-c59673e5c79c/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/179dc3a0-6e9c-450a-a2f3-c59673e5c79c/ports", "rel": "self"}, {"href": "http://localhost/nodes/179dc3a0-6e9c-450a-a2f3-c59673e5c79c/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected [0.053073s] ... ok PATCH: /v1/nodes/8144f0d1-bf52-48ff-a8b6-243c3f84d03b [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e923f186-6075-438d-8984-5506251224e5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/8144f0d1-bf52-48ff-a8b6-243c3f84d03b", "rel": "self"}, {"href": "http://localhost/nodes/8144f0d1-bf52-48ff-a8b6-243c3f84d03b", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/8144f0d1-bf52-48ff-a8b6-243c3f84d03b/states", "rel": "self"}, {"href": "http://localhost/nodes/8144f0d1-bf52-48ff-a8b6-243c3f84d03b/states", "rel": "bookmark"}], "traits": [], "provision_state": "active", "clean_step": {}, "vendor_interface": null, "uuid": "8144f0d1-bf52-48ff-a8b6-243c3f84d03b", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/8144f0d1-bf52-48ff-a8b6-243c3f84d03b/volume", "rel": "self"}, {"href": "http://localhost/nodes/8144f0d1-bf52-48ff-a8b6-243c3f84d03b/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.417939+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/8144f0d1-bf52-48ff-a8b6-243c3f84d03b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8144f0d1-bf52-48ff-a8b6-243c3f84d03b/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/8144f0d1-bf52-48ff-a8b6-243c3f84d03b/ports", "rel": "self"}, {"href": "http://localhost/nodes/8144f0d1-bf52-48ff-a8b6-243c3f84d03b/ports", "rel": "bookmark"}], "console_interface": null, "protected": true, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason [0.053309s] ... ok PATCH: /v1/nodes/6ae8c7e2-f426-4e8f-adac-96a8ced2abc3 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b85950cf-ed32-48aa-84ef-bf4a94e5c2d1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/6ae8c7e2-f426-4e8f-adac-96a8ced2abc3", "rel": "self"}, {"href": "http://localhost/nodes/6ae8c7e2-f426-4e8f-adac-96a8ced2abc3", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/6ae8c7e2-f426-4e8f-adac-96a8ced2abc3/states", "rel": "self"}, {"href": "http://localhost/nodes/6ae8c7e2-f426-4e8f-adac-96a8ced2abc3/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "6ae8c7e2-f426-4e8f-adac-96a8ced2abc3", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/6ae8c7e2-f426-4e8f-adac-96a8ced2abc3/volume", "rel": "self"}, {"href": "http://localhost/nodes/6ae8c7e2-f426-4e8f-adac-96a8ced2abc3/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:29.962789+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/6ae8c7e2-f426-4e8f-adac-96a8ced2abc3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6ae8c7e2-f426-4e8f-adac-96a8ced2abc3/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/6ae8c7e2-f426-4e8f-adac-96a8ced2abc3/ports", "rel": "self"}, {"href": "http://localhost/nodes/6ae8c7e2-f426-4e8f-adac-96a8ced2abc3/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface [0.062619s] ... ok 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-6d210089-8789-4f7b-aa3e-668addc5a3de X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"target_power_state": null, "inspect_interface": 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"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "updated_at": "2013-12-03T06:20:41.184720+00:00", "maintenance_reason": null, "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"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": null, "driver": "fake-hardware", "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"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": "node-57.1", "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.014498+00:00", "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"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "console_interface": null, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces [0.073668s] ... ok PATCH: /v1/nodes/beae4b57-c2a8-42a4-b3d3-2972fd26369b [{'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-96583abe-da4a-4e9b-9877-33c3798c1813 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/beae4b57-c2a8-42a4-b3d3-2972fd26369b", "rel": "self"}, {"href": "http://localhost/nodes/beae4b57-c2a8-42a4-b3d3-2972fd26369b", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/beae4b57-c2a8-42a4-b3d3-2972fd26369b/states", "rel": "self"}, {"href": "http://localhost/nodes/beae4b57-c2a8-42a4-b3d3-2972fd26369b/states", "rel": "bookmark"}], "traits": [], "provision_state": "active", "clean_step": {}, "vendor_interface": null, "uuid": "beae4b57-c2a8-42a4-b3d3-2972fd26369b", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/beae4b57-c2a8-42a4-b3d3-2972fd26369b/volume", "rel": "self"}, {"href": "http://localhost/nodes/beae4b57-c2a8-42a4-b3d3-2972fd26369b/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.478759+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/beae4b57-c2a8-42a4-b3d3-2972fd26369b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/beae4b57-c2a8-42a4-b3d3-2972fd26369b/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/beae4b57-c2a8-42a4-b3d3-2972fd26369b/ports", "rel": "self"}, {"href": "http://localhost/nodes/beae4b57-c2a8-42a4-b3d3-2972fd26369b/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason [0.061171s] ... ok 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-a4c9253a-6c1e-45fe-b8da-44c81b481370 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument patch: power_state\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state [0.050331s] ... ok PATCH: /v1/nodes/a9e82eb7-72e4-458f-ba74-f7bb597cf3f7 [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-801e783f-ded5-4758-a1db-852d5ac2fbd1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot update node traits via node patch. Node traits should be updated via the node traits API.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits [0.038989s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-7bd937ec-0be0-4ca9-9dd9-9dd1fd58d446 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"target_power_state": 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"}], "extra": {}, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "available", "clean_step": {}, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "target_provision_state": null, "provision_updated_at": null, "power_state": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.636321+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:30.636321+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'extra': {}, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'target_provision_state': None, u'provision_updated_at': None, u'power_state': None, u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:30.636321+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none [0.078198s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': None, 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-f3505550-e146-44b0-b001-96c80db9acf8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2000-01-01T00:00:00+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2000-01-01T00:00:00+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} POST: /v1/nodes {'instance_uuid': None, 'uuid': '6b89d5f1-13fd-484f-b794-38a05558ce79', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/6b89d5f1-13fd-484f-b794-38a05558ce79 Openstack-Request-Id: req-d6ea4aa0-8456-4023-8f3e-f4222be2ae13 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/6b89d5f1-13fd-484f-b794-38a05558ce79", "rel": "self"}, {"href": "http://localhost/nodes/6b89d5f1-13fd-484f-b794-38a05558ce79", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "6b89d5f1-13fd-484f-b794-38a05558ce79", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2000-01-01T00:00:00+00:00", "ports": [{"href": "http://localhost/v1/nodes/6b89d5f1-13fd-484f-b794-38a05558ce79/ports", "rel": "self"}, {"href": "http://localhost/nodes/6b89d5f1-13fd-484f-b794-38a05558ce79/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/6b89d5f1-13fd-484f-b794-38a05558ce79 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/6b89d5f1-13fd-484f-b794-38a05558ce79', u'rel': u'self'}, {u'href': u'http://localhost/nodes/6b89d5f1-13fd-484f-b794-38a05558ce79', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'6b89d5f1-13fd-484f-b794-38a05558ce79', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2000-01-01T00:00:00+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/6b89d5f1-13fd-484f-b794-38a05558ce79/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/6b89d5f1-13fd-484f-b794-38a05558ce79/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response [0.103305s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'network_interface': 'neutron'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-74d1dd71-2ca4-4085-b3d4-20ba8205c520 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "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"}], "provision_state": "enroll", "clean_step": {}, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "neutron", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2000-01-01T00:00:00+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'enroll', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'neutron', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2000-01-01T00:00:00+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface [0.066655s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 0, 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f132e384-2f1f-4765-8a8f-6c6c16e64c15 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 0.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis [0.031463s] ... ok POST: /v1/nodes {'instance_uuid': None, 'description': 'useful stuff', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-00132d43-f189-409c-b460-2c755737eb63 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": "noop", "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "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"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "description": "useful stuff", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": "fake", "driver": "fake-hardware", "updated_at": null, "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"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.722627+00:00", "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"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "console_interface": "fake", "protected": false, "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': u'noop', u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'description': u'useful stuff', u'conductor': None, u'driver': u'fake-hardware', u'power_interface': u'fake', u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:30.722627+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'protected': False, u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description [0.079773s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'network_interface': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2ea9df7b-2470-4e51-8f08-55604d5542d8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.network' entrypoint: foo. Valid interfaces are ['flat', 'noop', 'neutron'].\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface [0.078166s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'storage_interface': 'foo', 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0935f47d-e155-4495-9fc7-20acedd18893 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.storage' entrypoint: foo. Valid interfaces are ['noop', 'fake'].\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface [0.069028s] ... ok POST: /v1/nodes {'instance_uuid': None, 'description': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f2a6fd10-0bcd-4dad-9067-36ec580dac80 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with description exceeding 4096 characters\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize [0.028125s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'bios_interface': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a0a84a26-2de0-4435-b297-b43bbae8c2eb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.bios' entrypoint: foo. Valid interfaces are ['no-bios', 'fake'].\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface [0.034688s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'network_interface': 'flat'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-437dfbfc-c776-4b9d-869d-635c6a252bf2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": "noop", "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "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"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "description": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": "fake", "driver": "fake-hardware", "updated_at": null, "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"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:30.487944+00:00", "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"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "console_interface": "fake", "protected": false, "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': u'noop', u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': None, u'driver': u'fake-hardware', u'power_interface': u'fake', u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:30.487944+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'protected': False, u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface [0.135741s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-f3628b83-3bc0-4c2a-83b2-beec6a4c5774 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.861833+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2019-10-11T05:54:30.861833+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class [0.067905s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-83ba135f-dde6-4ad2-b2fd-666ba03d99d2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.631893+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid [0.094454s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c7e25b17-c81e-421a-824a-8fa08b56db78 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute driver. Value: 'None'. Mandatory field missing.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver [0.036306s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'traits': ['CUSTOM_4'], 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-de19cdaa-a9b9-4ac9-96dd-21ed426ffad1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot specify node traits on node creation. Traits must be set via the node traits API.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits [0.069525s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-6def800c-a3b4-4a92-9e39-a304b5067b56 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.838884+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'available', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': u'class1', u'created_at': u'2019-10-11T05:54:30.838884+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class [0.153771s] ... ok POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-33b0a750-982a-4348-ab1e-31744a0464c8 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource [0.078992s] ... ok POST: /v1/nodes {'instance_uuid': None, 'name': 'maintenance', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9106679f-3186-46f3-b687-087060241db6 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} POST: /v1/nodes {'instance_uuid': None, 'name': 'management', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9811e18c-6115-45a9-a604-478e579e20c6 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} POST: /v1/nodes {'instance_uuid': None, 'name': 'states', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-77ea755c-9e8b-48f6-acee-bdbd41a4b0cf 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} POST: /v1/nodes {'instance_uuid': None, 'name': 'vendor_passthru', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-881e51e1-ba8a-4f3b-8ab8-8583d66f679f 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} POST: /v1/nodes {'instance_uuid': None, 'name': 'validate', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a3991e18-47a0-496d-810b-17dca27efdc3 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} POST: /v1/nodes {'instance_uuid': None, 'name': 'detail', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cb3cc7ec-9571-4040-8113-4c792e2db7d4 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": "{\"debuginfo\": null, \"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, validate, detail.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name [0.067714s] ... ok POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-314a5a8c-9a44-4ac0-b7fb-129a38644288 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource [0.058320s] ... ok POST: /v1/nodes/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8c4d517a-6b7b-4c1a-8af7-b95c2709dbd1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node. Value: 'ports'. unable to convert to Node. Error: __init__() takes exactly 1 argument (2 given)\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id [0.089323s] ... ok POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ca5a8747-5833-4d9d-a49d-16420932b191 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource [0.065061s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {} GOT:foo {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get [0.112490s] ... ok 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-7b9dd00a-9c87-4453-a2af-5b398e748445 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait [0.121919s] ... 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-433b4805-74f8-41e3-948c-bf191ae5c710 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage [0.107205s] ... 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-5f62b9ea-393d-4c14-9cd4-7ae27743ce62 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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\\\".\"}"} 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-5216916d-4d1f-482c-baee-35ace5aef1a1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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\\\".\"}"} 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-d7ab3b1f-c64a-4713-a8de-e30002a01887 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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\\\".\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state [0.211172s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'clean_steps': [{'interface': 'deploy', 'step': 'upgrade_firmware'}], 'target': 'clean'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1f56365b-3797-4c2b-a7ac-dcc1cbeb17cd 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"bad\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail [0.120933s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'resource_class': 'foo', 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-31d4f1c1-799b-4a7f-ada4-63aeb9d81ee5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": "noop", "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "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"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "description": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": "fake", "driver": "fake-hardware", "updated_at": null, "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"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": "foo", "fault": null, "created_at": "2019-10-11T05:54:31.004642+00:00", "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"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "console_interface": "fake", "protected": false, "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': u'noop', u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': None, u'driver': u'fake-hardware', u'power_interface': u'fake', u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': u'foo', u'fault': None, u'created_at': u'2019-10-11T05:54:31.004642+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'protected': False, u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class [0.085553s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean'} 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-2679b64e-7004-45f3-a7d9-862d0034a406 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive [0.052433s] ... ok 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-d2c60ff9-bd28-4938-b5fb-d4ada484402e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Providing a JSON object for configdrive is only supported starting with API version 1.56\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_unsupported [0.069601s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'boot_interface': 'fake', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-091780d1-0a5d-445c-86d2-3293cfdd8f8d 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'console_interface': 'fake', 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c1f6ae87-4c4a-4906-8007-f1102e94af36 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'deploy_interface': 'fake', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-088b8d4c-f1f8-423a-982a-f97561d4a1b4 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'inspect_interface': 'fake'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-da3d49e5-0e53-49be-99a3-241dde7cd0a4 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} POST: /v1/nodes {'instance_uuid': None, 'management_interface': 'fake', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7d878eb1-a07a-4585-9db6-e6a3575631e2 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'power_interface': 'fake', 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d2dee47e-6446-4476-938b-001186b47947 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'raid_interface': 'fake', 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-71dba5ce-11bb-430f-a599-d586a8be86be 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'vendor_interface': 'fake'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-96396fcc-a3c4-4d11-b244-9446811f1a98 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version [0.077270s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'storage_interface': 'cinder', 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9a0b0137-387f-45d5-92f9-b4707e566179 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version [0.026779s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3800d3ee-6f62-46a3-a633-94287c7e9338 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is required when setting target provision state to clean\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps [0.134022s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'none': None, 'int': 123, 'float': 0.1, 'list': [1, 2], 'bool': True, 'str': 'foo', 'dict': {'cat': 'meow'}}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-d1084d73-6da1-48ba-a7e0-8d00bda329e5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"none": null, "int": 123, "float": 0.1, "list": [1, 2], "dict": {"cat": "meow"}, "str": "foo", "bool": true}, "created_at": "2019-10-11T05:54:31.182827+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'none': None, u'int': 123, u'float': 0.1, u'list': [1, 2], u'bool': True, u'str': u'foo', u'dict': {u'cat': u'meow'}}, u'created_at': u'2019-10-11T05:54:31.182827+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info [0.064427s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {'none': None, 'int': 123, 'float': 0.1, 'list': [1, 2], 'bool': True, 'str': 'foo', 'dict': {'cat': 'meow'}}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-37f7be5b-494f-48c4-a340-8c96328de57e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {"none": null, "int": 123, "float": 0.1, "list": [1, 2], "dict": {"cat": "meow"}, "str": "foo", "bool": true}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:31.244968+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {u'none': None, u'int': 123, u'float': 0.1, u'list': [1, 2], u'bool': True, u'str': u'foo', u'dict': {u'cat': u'meow'}}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:31.244968+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra [0.065504s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5afbdd81-4d7e-45ba-abeb-b2e14709df63 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported [0.089206s] ... ok 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-7ebbba58-bb9a-440e-8e4f-3915516acd0f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid [0.057723s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'none': None, 'int': 123, 'float': 0.1, 'list': [1, 2], 'bool': True, 'str': 'foo', 'dict': {'cat': 'meow'}}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-a35305f2-658f-405e-84cc-2c308c912060 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:31.310879+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"none": null, "int": 123, "float": 0.1, "list": [1, 2], "dict": {"cat": "meow"}, "str": "foo", "bool": true}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:31.310879+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'instance_info': {u'none': None, u'int': 123, u'float': 0.1, u'list': [1, 2], u'bool': True, u'str': u'foo', u'dict': {u'cat': u'meow'}}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_instance_info [0.066625s] ... ok 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-a074e527-dbdd-4864-a381-a512b9328d7d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported [0.065365s] ... ok 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-0b79cda4-3bf8-4264-a06a-db1b16d951f9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled [0.065474s] ... ok PUT: /v1/nodes/node-39/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted Openstack-Request-Id: req-68853071-3bf7-46d0-937f-d611575cbfec X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name [0.065405s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} GOT:Response: 202 Accepted Openstack-Request-Id: req-de3e3eb3-9cb8-4f2b-9119-69a4ab2e7de2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason [0.065482s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'reservation': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8ff2210d-374c-44d7-810f-919a089492e5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute reservation. Value: 'fake'. Cannot set read only field.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field [0.025803s] ... ok POST: /v1/nodes/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id [0.023793s] ... ok POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {'boot_index': 0, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'volume_type': 'iscsi', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3c7668e8-2248-4e23-94ae-333d1fc0a454 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource [0.041810s] ... ok PUT: /v1/nodes/node-39/traits/bad_trait {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-208a5776-69b2-416a-964e-995f0cb2e1ea 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": "{\"debuginfo\": null, \"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 _\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait [0.088126s] ... ok PUT: /v1/nodes/node-39/traits/CUSTOM_3 {'traits': ['CUSTOM_3']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c93697ac-53a6-4f0c-87f1-861406538af2 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": "{\"debuginfo\": null, \"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.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 [0.076542s] ... ok PUT: /v1/nodes/node-39/traits {'traits': []} GOT:Response: 204 No Content Openstack-Request-Id: req-43971886-eddb-40de-a061-141ec6fae912 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty [0.073838s] ... ok PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} GOT:Response: 204 No Content Openstack-Request-Id: req-1c7c9f22-6a52-4280-878a-ff403cc3ad85 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis [0.091460s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params [0.013967s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification [0.014279s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification [0.019205s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification [0.016650s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets [0.012676s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification [0.012777s] ... ok DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-380eddde-7b90-471c-9c4e-7e4ffbbbbb65 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid [0.063473s] ... ok 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-085dfd45-ff2f-46d5-9a97-8c89578b2458 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value [0.108477s] ... ok 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-4890e6ba-1836-45d4-8787-dbbc3896d49b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async [0.043362s] ... ok POST: /v1/nodes/node-109/vendor_passthru/test {'foo': 'bar'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-47c7afd9-d2d6-4e91-9c8f-b74897cb84be X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 null {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name [0.038535s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-8c659987-e1b2-4650-9761-184d5b9529b6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete [0.037525s] ... ok 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-70ae5e52-0e5f-4a1c-8d14-30dabbc98e9c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support test (disabled or not implemented).\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method [0.041570s] ... ok DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4df4d65f-c270-4f76-8bab-89c864cd4a64 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked [0.069905s] ... ok GET: /v1/ports {} GOT:{u'ports': [{u'uuid': u'156b87a6-a11e-466a-82d5-60fbce64ef71', u'links': [{u'href': u'http://localhost/v1/ports/156b87a6-a11e-466a-82d5-60fbce64ef71', u'rel': u'self'}, {u'href': u'http://localhost/ports/156b87a6-a11e-466a-82d5-60fbce64ef71', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}, {u'uuid': u'4bc6c8d9-ecbf-4519-8e01-8125710e7d94', u'links': [{u'href': u'http://localhost/v1/ports/4bc6c8d9-ecbf-4519-8e01-8125710e7d94', u'rel': u'self'}, {u'href': u'http://localhost/ports/4bc6c8d9-ecbf-4519-8e01-8125710e7d94', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}, {u'uuid': u'7712c273-f112-4dc1-8ea1-1bcdbce600d5', u'links': [{u'href': u'http://localhost/v1/ports/7712c273-f112-4dc1-8ea1-1bcdbce600d5', u'rel': u'self'}, {u'href': u'http://localhost/ports/7712c273-f112-4dc1-8ea1-1bcdbce600d5', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:32'}], u'next': u'http://localhost/v1/ports?sort_dir=asc&sort_key=id&limit=3&marker=7712c273-f112-4dc1-8ea1-1bcdbce600d5'} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit [0.091068s] ... 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-5bef1359-2598-464f-80c5-e3152b2788cf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\"}"} 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-071711d4-679f-4956-831f-3fb6bdd4c7b2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\"}"} 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-fc86479d-4814-447e-9e83-83defcc0c983 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state [0.076878s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 204 No Content Openstack-Request-Id: req-596713e7-79bc-460e-a430-03b1f3373045 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi [0.042997s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-820ec96b-e8fb-4417-aabe-bda3503ba547 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed [0.032871s] ... ok 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-13e47985-b4dc-4ca3-b7f4-9fbe5117a099 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 [0.056676s] ... ok 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-f4ba2912-6282-4ab9-9eb9-c400877d66c2 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code [0.053112s] ... ok 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-fd63443e-f5ec-4e10-aae8-4d51e8ad64ad 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver [0.043095s] ... ok GET: /v1/ports/detail {} GOT:{u'ports': [{u'local_link_connection': {u'switch_info': u'switch', u'port_id': u'Gig0/1', u'switch_id': u'aa:bb:cc:dd:ee:ff'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': False, u'portgroup_uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'updated_at': None, u'physical_network': u'physnet1', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:31.582286+00:00', u'is_smartnic': True}]} 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-fc90aa18-6c82-480a-90f7-10605f89a048 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-9fb554a0-0e08-4c34-b0af-9a83963c3094 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail [0.104710s] ... 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-71383d14-8bc9-4cc0-a45e-fc88a91ec78d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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\\\".\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request [0.078162s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver [0.041622s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail [0.067427s] ... ok PATCH: /v1/nodes/20677e02-d1bc-4567-9387-a25e5ed3aea1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-215fef55-153f-41e3-9267-45fedf1a1f3c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/20677e02-d1bc-4567-9387-a25e5ed3aea1", "rel": "self"}, {"href": "http://localhost/nodes/20677e02-d1bc-4567-9387-a25e5ed3aea1", "rel": "bookmark"}], "target_provision_state": "available", "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "deploy failed", "uuid": "20677e02-d1bc-4567-9387-a25e5ed3aea1", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.649678+00:00", "ports": [{"href": "http://localhost/v1/nodes/20677e02-d1bc-4567-9387-a25e5ed3aea1/ports", "rel": "self"}, {"href": "http://localhost/nodes/20677e02-d1bc-4567-9387-a25e5ed3aea1/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} PATCH: /v1/nodes/d16939e6-e602-4eb1-bf1c-4ec84ed516ed [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce85cbd2-4cd8-49ad-904a-eee6b310fda2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/d16939e6-e602-4eb1-bf1c-4ec84ed516ed", "rel": "self"}, {"href": "http://localhost/nodes/d16939e6-e602-4eb1-bf1c-4ec84ed516ed", "rel": "bookmark"}], "target_provision_state": "available", "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "inspecting", "uuid": "d16939e6-e602-4eb1-bf1c-4ec84ed516ed", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.708402+00:00", "ports": [{"href": "http://localhost/v1/nodes/d16939e6-e602-4eb1-bf1c-4ec84ed516ed/ports", "rel": "self"}, {"href": "http://localhost/nodes/d16939e6-e602-4eb1-bf1c-4ec84ed516ed/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} PATCH: /v1/nodes/a4e9d8ab-cd85-4b1a-b0d7-c5362db28246 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b0b404f-beaa-4b40-b642-b2d95d8d65bd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/a4e9d8ab-cd85-4b1a-b0d7-c5362db28246", "rel": "self"}, {"href": "http://localhost/nodes/a4e9d8ab-cd85-4b1a-b0d7-c5362db28246", "rel": "bookmark"}], "target_provision_state": "available", "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "inspect failed", "uuid": "a4e9d8ab-cd85-4b1a-b0d7-c5362db28246", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.761047+00:00", "ports": [{"href": "http://localhost/v1/nodes/a4e9d8ab-cd85-4b1a-b0d7-c5362db28246/ports", "rel": "self"}, {"href": "http://localhost/nodes/a4e9d8ab-cd85-4b1a-b0d7-c5362db28246/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} PATCH: /v1/nodes/9c617329-1419-4e87-8c05-f07d2ef68a86 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1c8fee1-4140-4144-8243-a5ae0bb77f0e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/9c617329-1419-4e87-8c05-f07d2ef68a86", "rel": "self"}, {"href": "http://localhost/nodes/9c617329-1419-4e87-8c05-f07d2ef68a86", "rel": "bookmark"}], "target_provision_state": "available", "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "inspecting", "uuid": "9c617329-1419-4e87-8c05-f07d2ef68a86", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.804101+00:00", "ports": [{"href": "http://localhost/v1/nodes/9c617329-1419-4e87-8c05-f07d2ef68a86/ports", "rel": "self"}, {"href": "http://localhost/nodes/9c617329-1419-4e87-8c05-f07d2ef68a86/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} PATCH: /v1/nodes/d2395afd-c872-4e1a-ada6-894afa824bbf [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56e091e4-3016-4a8f-acd0-57e5f242b260 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/d2395afd-c872-4e1a-ada6-894afa824bbf", "rel": "self"}, {"href": "http://localhost/nodes/d2395afd-c872-4e1a-ada6-894afa824bbf", "rel": "bookmark"}], "target_provision_state": "available", "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "clean failed", "uuid": "d2395afd-c872-4e1a-ada6-894afa824bbf", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.847020+00:00", "ports": [{"href": "http://localhost/v1/nodes/d2395afd-c872-4e1a-ada6-894afa824bbf/ports", "rel": "self"}, {"href": "http://localhost/nodes/d2395afd-c872-4e1a-ada6-894afa824bbf/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} PATCH: /v1/nodes/61ab0a70-3c16-4a0b-99c0-e2919dbb587d [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e2cdb2ae-121a-4dff-9473-9fae59d6ff40 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/61ab0a70-3c16-4a0b-99c0-e2919dbb587d", "rel": "self"}, {"href": "http://localhost/nodes/61ab0a70-3c16-4a0b-99c0-e2919dbb587d", "rel": "bookmark"}], "target_provision_state": "available", "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "error", "uuid": "61ab0a70-3c16-4a0b-99c0-e2919dbb587d", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.889679+00:00", "ports": [{"href": "http://localhost/v1/nodes/61ab0a70-3c16-4a0b-99c0-e2919dbb587d/ports", "rel": "self"}, {"href": "http://localhost/nodes/61ab0a70-3c16-4a0b-99c0-e2919dbb587d/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} PATCH: /v1/nodes/249c0402-f738-403e-9db2-a8d0ac4e6436 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b123ac34-18f8-423d-b46b-5fe1beac648c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/249c0402-f738-403e-9db2-a8d0ac4e6436", "rel": "self"}, {"href": "http://localhost/nodes/249c0402-f738-403e-9db2-a8d0ac4e6436", "rel": "bookmark"}], "target_provision_state": "available", "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "verifying", "uuid": "249c0402-f738-403e-9db2-a8d0ac4e6436", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.937804+00:00", "ports": [{"href": "http://localhost/v1/nodes/249c0402-f738-403e-9db2-a8d0ac4e6436/ports", "rel": "self"}, {"href": "http://localhost/nodes/249c0402-f738-403e-9db2-a8d0ac4e6436/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} PATCH: /v1/nodes/434c048f-9c41-4ecc-8fe5-fba88cd2d5fe [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-333b9e34-b116-4eb3-a3c7-d9a5588b901d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/434c048f-9c41-4ecc-8fe5-fba88cd2d5fe", "rel": "self"}, {"href": "http://localhost/nodes/434c048f-9c41-4ecc-8fe5-fba88cd2d5fe", "rel": "bookmark"}], "target_provision_state": "available", "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "adopt failed", "uuid": "434c048f-9c41-4ecc-8fe5-fba88cd2d5fe", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:30.979991+00:00", "ports": [{"href": "http://localhost/v1/nodes/434c048f-9c41-4ecc-8fe5-fba88cd2d5fe/ports", "rel": "self"}, {"href": "http://localhost/nodes/434c048f-9c41-4ecc-8fe5-fba88cd2d5fe/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} PATCH: /v1/nodes/1d968304-c3fd-4f44-8a14-e025a939abd0 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b4291ec-6f6b-4fed-ae5c-2d5ea13b62b7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/1d968304-c3fd-4f44-8a14-e025a939abd0", "rel": "self"}, {"href": "http://localhost/nodes/1d968304-c3fd-4f44-8a14-e025a939abd0", "rel": "bookmark"}], "target_provision_state": "available", "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "rescue failed", "uuid": "1d968304-c3fd-4f44-8a14-e025a939abd0", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:31.032998+00:00", "ports": [{"href": "http://localhost/v1/nodes/1d968304-c3fd-4f44-8a14-e025a939abd0/ports", "rel": "self"}, {"href": "http://localhost/nodes/1d968304-c3fd-4f44-8a14-e025a939abd0/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} PATCH: /v1/nodes/a32f1c4b-7385-42e4-a190-8edb1d1024ae [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-33db9b4e-2488-479f-b861-8aa707d1939e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/a32f1c4b-7385-42e4-a190-8edb1d1024ae", "rel": "self"}, {"href": "http://localhost/nodes/a32f1c4b-7385-42e4-a190-8edb1d1024ae", "rel": "bookmark"}], "target_provision_state": "available", "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": "unrescue failed", "uuid": "a32f1c4b-7385-42e4-a190-8edb1d1024ae", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:31.075937+00:00", "ports": [{"href": "http://localhost/v1/nodes/a32f1c4b-7385-42e4-a190-8edb1d1024ae/ports", "rel": "self"}, {"href": "http://localhost/nodes/a32f1c4b-7385-42e4-a190-8edb1d1024ae/ports", "rel": "bookmark"}], "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES [0.509316s] ... ok 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-7d7225f3-0a55-4c23-bb85-c462d1d2e740 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver [0.042850s] ... ok 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-eafcc20e-6522-47cc-b615-5a0751e121a0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name [0.043648s] ... 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-6c98f799-7cdc-4049-b5bb-5542460f5b74 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The provisioning operation can't be performed on node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 because it's in maintenance mode.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail [0.053107s] ... ok GET: /v1/ports?detail=True {} GOT:{u'ports': [{u'local_link_connection': {u'switch_info': u'switch', u'port_id': u'Gig0/1', u'switch_id': u'aa:bb:cc:dd:ee:ff'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': False, u'portgroup_uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'updated_at': None, u'physical_network': u'physnet1', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:31.644687+00:00', u'is_smartnic': False}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query [0.060809s] ... ok GET: /v1/ports/detail?sort_key=pxe_enabled {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4a2c0b74-ec65-425c-b0ac-07892a021ea0 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed [0.039228s] ... ok GET: /v1/ports?node=test-node {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-59e68ece-210a-4111-98c7-497ca3ceca5e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported [0.045535s] ... ok 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-c2e6a272-a579-435d-ab75-e49f03842fb9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive [0.057469s] ... ok 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-fdece0d3-797a-439f-96f3-596df55cf7d0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait [0.066231s] ... ok GET: /v1/ports/detail?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123&node=node-name {} GOT:{u'ports': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:31.787254+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31'}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name [0.052552s] ... ok 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-4b5b182b-9eff-4f4f-b326-c791dee87416 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} GET: /v1/ports/detail?portgroup=fooname {} GOT:{u'ports': [{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'updated_at': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:31.841975+00:00'}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name [0.059424s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version [0.031837s] ... ok GET: /v1/ports?fields=uuid,extra {} GOT:{u'ports': [{u'uuid': u'2d45b017-9a9d-4794-8845-d60b8cb925db', u'links': [{u'href': u'http://localhost/v1/ports/2d45b017-9a9d-4794-8845-d60b8cb925db', u'rel': u'self'}, {u'href': u'http://localhost/ports/2d45b017-9a9d-4794-8845-d60b8cb925db', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'e24660da-e91f-4839-92db-2d52cbeb86cb', u'links': [{u'href': u'http://localhost/v1/ports/e24660da-e91f-4839-92db-2d52cbeb86cb', u'rel': u'self'}, {u'href': u'http://localhost/ports/e24660da-e91f-4839-92db-2d52cbeb86cb', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'e20d077c-0630-4d29-9751-eb33d6931c13', u'links': [{u'href': u'http://localhost/v1/ports/e20d077c-0630-4d29-9751-eb33d6931c13', u'rel': u'self'}, {u'href': u'http://localhost/ports/e20d077c-0630-4d29-9751-eb33d6931c13', u'rel': u'bookmark'}], u'extra': {}}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields [0.079150s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:31.977685+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31'} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one [0.049760s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:32.027614+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch', u'port_id': u'Gig0/1', u'switch_id': u'aa:bb:cc:dd:ee:ff'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'created_at': u'2019-10-11T05:54:32.027614+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net [0.064473s] ... ok PUT: /v1/nodes/node-39/management/boot_device {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-29dcbddc-e436-494c-af3f-f1f0661ad480 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name [0.054218s] ... ok 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-fda7f1c7-703d-45f3-9ca3-babc99fb1689 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent [0.054141s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': None, u'updated_at': None, u'physical_network': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:32.092546+00:00'} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': None, u'updated_at': None, u'physical_network': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:32.092546+00:00', u'is_smartnic': True} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic [0.071884s] ... ok 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-45c4a53d-d27a-4882-b0cd-a505d67597a5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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'\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value [0.030884s] ... ok 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-f4941570-fa3c-4a8f-8b00-313d5c6da604 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name [0.041400s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-641a3b1a-557d-4bfd-a6af-9908b79db38f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"enabled\\\"\"}"} GET: /v1/ports/detail {} GOT:{u'ports': [{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': None, u'updated_at': None, u'physical_network': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:32.166357+00:00', u'is_smartnic': False}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group [0.057344s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter [0.045013s] ... ok 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-d5c5d119-7fd1-4596-a9a2-6cdb96168441 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled [0.041178s] ... ok PUT: /v1/nodes/node-39/traits/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ea29af10-766a-4c22-9fb1-ae1d0580397d 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": "{\"debuginfo\": null, \"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 _\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait [0.044424s] ... ok DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-03d493b6-0f40-4274-b214-04d61959a803 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked [0.044913s] ... ok PATCH: /v1/nodes/a21c6879-8fbc-4d30-8492-91c47cc6d4ff [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f6d7ad5-edfd-4158-8bc9-846e32ad5fed X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": null, "links": [{"href": "http://localhost/v1/nodes/a21c6879-8fbc-4d30-8492-91c47cc6d4ff", "rel": "self"}, {"href": "http://localhost/nodes/a21c6879-8fbc-4d30-8492-91c47cc6d4ff", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": null, "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/a21c6879-8fbc-4d30-8492-91c47cc6d4ff/states", "rel": "self"}, {"href": "http://localhost/nodes/a21c6879-8fbc-4d30-8492-91c47cc6d4ff/states", "rel": "bookmark"}], "traits": [], "provision_state": "available", "clean_step": {}, "vendor_interface": null, "description": null, "uuid": "a21c6879-8fbc-4d30-8492-91c47cc6d4ff", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": null, "driver": "fake-hardware", "updated_at": null, "volume": [{"href": "http://localhost/v1/nodes/a21c6879-8fbc-4d30-8492-91c47cc6d4ff/volume", "rel": "self"}, {"href": "http://localhost/nodes/a21c6879-8fbc-4d30-8492-91c47cc6d4ff/volume", "rel": "bookmark"}], "raid_interface": null, "rescue_interface": null, "boot_interface": null, "reservation": null, "management_interface": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": null, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:31.187252+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/a21c6879-8fbc-4d30-8492-91c47cc6d4ff/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a21c6879-8fbc-4d30-8492-91c47cc6d4ff/portgroups", "rel": "bookmark"}], "deploy_interface": null, "ports": [{"href": "http://localhost/v1/nodes/a21c6879-8fbc-4d30-8492-91c47cc6d4ff/ports", "rel": "self"}, {"href": "http://localhost/nodes/a21c6879-8fbc-4d30-8492-91c47cc6d4ff/ports", "rel": "bookmark"}], "console_interface": null, "protected": false, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "owner": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface [0.161554s] ... 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-53ae077f-07d6-4e60-a876-8f15a015c493 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": "2013-12-03T06:20:41.184720+00:00", "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:31.299293+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok [0.133997s] ... ok GET: /v1/ports {} GOT:{u'ports': [{u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one [0.050385s] ... ok GET: /v1/ports?sort_key=pxe_enabled {} GOT:{u'ports': [{u'uuid': u'b7cf2549-fb77-4023-bbca-1b5b9f77be2a', u'links': [{u'href': u'http://localhost/v1/ports/b7cf2549-fb77-4023-bbca-1b5b9f77be2a', u'rel': u'self'}, {u'href': u'http://localhost/ports/b7cf2549-fb77-4023-bbca-1b5b9f77be2a', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}, {u'uuid': u'4bd5f825-d724-4f39-9bd2-40b642ee77a5', u'links': [{u'href': u'http://localhost/v1/ports/4bd5f825-d724-4f39-9bd2-40b642ee77a5', u'rel': u'self'}, {u'href': u'http://localhost/ports/4bd5f825-d724-4f39-9bd2-40b642ee77a5', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed [0.058538s] ... ok GET: /v1/ports?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e8a5b3ac-54a4-4840-b862-ad5d538f4e2a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\"}"} GET: /v1/ports?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d1ee74af-3fff-438a-9916-5f906ee7ba33 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\"}"} GET: /v1/ports?sort_key=internal_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-14971562-9fc6-462e-8575-ef233dfa6df5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\"}"} GET: /v1/ports?sort_key=local_link_connection {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-be787865-9a05-490a-9840-19d519dc4361 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid [0.050237s] ... ok PATCH: /v1/ports/94dba604-7d77-41c6-b86e-4e16f829cb2b [{'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-40c3b859-6c94-4a3a-9bfc-c4e6a0e6a917 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "94dba604-7d77-41c6-b86e-4e16f829cb2b", "links": [{"href": "http://localhost/v1/ports/94dba604-7d77-41c6-b86e-4e16f829cb2b", "rel": "self"}, {"href": "http://localhost/ports/94dba604-7d77-41c6-b86e-4e16f829cb2b", "rel": "bookmark"}], "extra": {"vif_port_id": "bar"}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:32.409905+00:00", "address": "52:55:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "bar", "bar": "buzz"}, "created_at": "2019-10-11T05:54:32.381391+00:00"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_no_internal [0.061607s] ... ok 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-f670cd76-2e8a-4311-85f0-08a8ddd7b7ec X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:32.439934+00:00", "updated_at": "2019-10-11T05:54:32.469058+00:00", "address": "aa:bb:cc:dd:ee:ff"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root [0.060651s] ... ok 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-e614ed23-bf9d-40f7-ad9c-c2f7735db2d4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent [0.202272s] ... 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-f04080a3-f1b5-49a3-9d24-b344d7395595 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text [0.039775s] ... ok PATCH: /v1/ports/846fde7a-c794-44e6-ac3c-f71299e548e5 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e17e60c8-6002-4fe7-aab8-c89d0216be77 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "846fde7a-c794-44e6-ac3c-f71299e548e5", "links": [{"href": "http://localhost/v1/ports/846fde7a-c794-44e6-ac3c-f71299e548e5", "rel": "self"}, {"href": "http://localhost/ports/846fde7a-c794-44e6-ac3c-f71299e548e5", "rel": "bookmark"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:32.778246+00:00", "address": "52:55:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:32.747641+00:00"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id [0.065198s] ... ok 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-2dcd2fa0-426c-45be-b321-46717e12a7df X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": "2013-12-03T06:20:41.184720+00:00", "maintenance_reason": null, "provision_state": "available", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": "node-57.1", "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:31.475435+00:00", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json [0.156501s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] PATCH: /v1/nodes/bfb0a789-cf8e-47df-acce-d74d0a6caa53 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0e4c9f22-29e9-45f1-a1fd-3a49d15ff26a 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api [0.084476s] ... ok PATCH: /v1/nodes/d94d097d-c937-4edc-9bcb-a9e88d19bc26 [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-92665036-f16a-4dca-9af8-3429b66763bd 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api [0.097303s] ... ok PATCH: /v1/nodes/f5d73634-12ca-46bd-bc5e-3b6c01b87d71 [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c3769c6-d54d-4dbf-983b-0afe30aaaa13 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"target_power_state": null, "links": [{"href": "http://localhost/v1/nodes/f5d73634-12ca-46bd-bc5e-3b6c01b87d71", "rel": "self"}, {"href": "http://localhost/nodes/f5d73634-12ca-46bd-bc5e-3b6c01b87d71", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/f5d73634-12ca-46bd-bc5e-3b6c01b87d71/states", "rel": "self"}, {"href": "http://localhost/nodes/f5d73634-12ca-46bd-bc5e-3b6c01b87d71/states", "rel": "bookmark"}], "provision_state": "available", "clean_step": {}, "uuid": "f5d73634-12ca-46bd-bc5e-3b6c01b87d71", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": null, "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2019-10-11T05:54:31.826577+00:00", "ports": [{"href": "http://localhost/v1/nodes/f5d73634-12ca-46bd-bc5e-3b6c01b87d71/ports", "rel": "self"}, {"href": "http://localhost/nodes/f5d73634-12ca-46bd-bc5e-3b6c01b87d71/ports", "rel": "bookmark"}], "driver_internal_info": {"private_state": "secret value"}, "chassis_uuid": null, "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length [0.165217s] ... ok PATCH: /v1/nodes/2966122a-72bf-4d61-9495-2a26c3eb5d0b [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-10f914e6-6ed8-4de2-953b-cd2843377f78 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute resource_class. Value: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'. Value should have a maximum character requirement of 80\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long [0.094932s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d5c5d586-964f-498f-91c4-ee47bfe90506 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Chassis 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found [0.087735s] ... ok DELETE: /v1/nodes/node-39/traits/CUSTOM_12 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8566a47c-1358-4af3-b5ad-58a8f057113a 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a trait 'CUSTOM_12'\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found [0.225969s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:{u'traits': [u'CUSTOM_1', u'CUSTOM_2']} {3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits [0.046460s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {'foo': 123}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-f990435a-ba3b-4d4b-8c6c-6b74102b7e54 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "provision_state": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {"foo": 123}, "provision_updated_at": null, "maintenance": false, "power_state": null, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "created_at": "2019-10-11T05:54:32.197860+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {u'foo': 123}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': u'2019-10-11T05:54:32.197860+00:00', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id [0.151295s] ... ok GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3ad397cc-1920-4179-bb51-fb6fd5831ff5 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version [0.034598s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'resource_class': 'class2', 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-51957699-4d6a-481e-ae34-c2d5f500de56 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"target_power_state": 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"}], "target_provision_state": null, "last_error": null, "updated_at": null, "maintenance_reason": null, "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"}], "provision_state": "enroll", "clean_step": {}, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "driver": "fake-hardware", "reservation": null, "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": "class2", "created_at": "2019-10-11T05:54:32.332400+00:00", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'enroll', u'clean_step': {}, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': u'class2', u'created_at': u'2019-10-11T05:54:32.332400+00:00', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class [0.123730s] ... ok PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} GOT:Response: 204 No Content Openstack-Request-Id: req-0f465143-00ff-4339-be07-a59b5bd4c631 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits [0.042589s] ... ok PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'BAD_TRAIT']} 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-d7ac0c5b-d5ca-4a41-82fa-25b21198cfc5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name [0.078051s] ... ok 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-60dd55d7-89f7-448a-a787-28bd55b46489 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver [0.078371s] ... ok 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-a2b01480-0210-406b-a256-3a9b45b9c193 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver [0.080298s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-16c9f9c5-6ea1-4c5f-8e76-ed0a19ef3d85 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver [0.089607s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'storage_interface': 'cinder', 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-cb45038b-31e2-4128-8e31-6aac028c6d80 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "cinder", "updated_at": null, "maintenance_reason": null, "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"}], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "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"}], "raid_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "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"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'cinder', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface [0.139526s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-43049042-a6b2-4197-bde6-3c067095c5b3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Fake Error\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver [0.059785s] ... ok POST: /v1/nodes {'instance_uuid': None, 'name': '', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-708b699f-8b5b-499b-b83a-a847095547d4 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with invalid name ''\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid [0.059986s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'network_interface': 'flat'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-88112a9d-21bf-4cfb-92fa-3bf5169b587a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version [0.059789s] ... ok 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-da6af01b-2a0c-48c4-b628-8a86c0341f75 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver [0.057020s] ... ok 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-320e95ce-158c-4599-8628-7c8c958fe783 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage [0.107693s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4277d4c2-a9e7-4dc6-9a95-daba8562a700 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress [0.099585s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'rescue_password': ' ', 'target': 'rescue'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f27c99d-8879-44fc-9c57-f85af25aba61 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password [0.100590s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf5147c0-473e-429b-aeb1-4da78ec36746 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "aa:bb:cc:dd:ee:ff"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "created_at": "2019-10-11T05:54:32.808453+00:00", "updated_at": "2019-10-11T05:54:32.839485+00:00", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection [0.060263s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'e3e600b0-c1d2-4a54-a8b8-b84067a5f11b', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20250ed5-3e48-4481-bf61-f440c186f197 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "e3e600b0-c1d2-4a54-a8b8-b84067a5f11b", "updated_at": "2019-10-11T05:54:32.902713+00:00", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "created_at": "2019-10-11T05:54:32.868695+00:00"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid [0.064547s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'c9b6c61c-8afa-4ff0-9fa3-9dfc094853c5', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-add5fbfe-c315-48fe-b642-7cff6a9f272c 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api [0.040260s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'owner': 'cowsay', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-ae412ce8-b093-4cda-9bbd-56b3a2c8bd15 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"target_power_state": null, "automated_clean": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": "noop", "conductor_group": "", "protected_reason": null, "maintenance_reason": null, "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"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "description": null, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "conductor": null, "power_interface": "fake", "driver": "fake-hardware", "updated_at": null, "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"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:32.763721+00:00", "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"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "console_interface": "fake", "protected": false, "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "owner": "cowsay", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}, "allocation_uuid": null} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'automated_clean': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': u'noop', u'conductor_group': u'', u'protected_reason': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'maintenance': False, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'description': None, u'conductor': None, u'driver': u'fake-hardware', u'power_interface': u'fake', u'updated_at': None, u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:32.763721+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'protected': False, u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'owner': u'cowsay', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'allocation_uuid': None} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner [0.144582s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'protected': True, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5696e9bd-7e3b-4ca0-8e9f-53643a153612 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot specify protected or protected_reason on node creation. These fields can only be set for active nodes\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed [0.068413s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'resource_class': 'foo', 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1df00947-b014-4b08-bdfd-749b3166e099 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version [0.058765s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e6dd9211-b221-4d3e-a544-29cd019349ef 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": "{\"debuginfo\": null, \"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 _\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait [0.045697s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification [0.008070s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_notification_uuid_unset [0.008298s] ... ok DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/26081d9f-e3b0-449d-b82b-2a30c4eb3fa7 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9df1c530-f1fb-415d-96ad-a87285d71743 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete [0.034532s] ... ok GET: /v1/ports {} GOT:{u'ports': [{u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}]} GET: /v1/ports?detail=False {} GOT:{u'ports': [{u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false [0.054566s] ... ok GET: /v1/ports/detail?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'ports': []} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage [0.029440s] ... ok GET: /v1/ports?fields=address&limit=2 {} GOT:{u'ports': [{u'links': [{u'href': u'http://localhost/v1/ports/fdf6e6fb-0cde-4f01-b600-59666d60a267', u'rel': u'self'}, {u'href': u'http://localhost/ports/fdf6e6fb-0cde-4f01-b600-59666d60a267', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}, {u'links': [{u'href': u'http://localhost/v1/ports/bc68a17e-94e6-4b97-8ac9-28fd8a10b4a8', u'rel': u'self'}, {u'href': u'http://localhost/ports/bc68a17e-94e6-4b97-8ac9-28fd8a10b4a8', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}], u'next': u'http://localhost/v1/ports?sort_dir=asc&sort_key=id&limit=2&marker=bc68a17e-94e6-4b97-8ac9-28fd8a10b4a8'} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid [0.051077s] ... ok 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-2761c47e-c05e-4907-9d3d-e1fa8c6212c1 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:{u'physical_network': u'physnet1', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network [0.045985s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'conductor_group': 'foo', 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-83bc6cb6-2e26-442d-87df-418b9093f309 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "target_provision_state": null, "deploy_step": {}, "storage_interface": "noop", "conductor_group": "foo", "updated_at": null, "maintenance_reason": null, "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"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "last_error": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "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"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "fault": null, "created_at": "2019-10-11T05:54:33.019922+00:00", "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"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'deploy_step': {}, u'storage_interface': u'noop', u'conductor_group': u'foo', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'last_error': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'fault': None, u'created_at': u'2019-10-11T05:54:33.019922+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group [0.117295s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=address,extra {} GOT:{u'address': u'52:54:00:cf:2d:31', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields [0.040539s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:33.295380+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31'} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:33.295380+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'foo': u'bar'}} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info [0.057038s] ... ok GET: /v1/ports {} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '1677e7ae-eae5-4b19-ba79-c71b69d14011', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': 'ede35110-cf4d-43e1-909f-65ffdcc37e44', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-57d91ffd-586c-4669-968c-493e8000ea0a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "ede35110-cf4d-43e1-909f-65ffdcc37e44", "updated_at": "2019-10-11T05:54:33.016874+00:00", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "created_at": "2019-10-11T05:54:32.980971+00:00"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add [0.075847s] ... ok PATCH: /v1/ports/e51e7083-fcfb-4038-b12e-5f6e65839c83 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d2652390-ebe8-416b-8cbc-2f83f5fd573b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Port e51e7083-fcfb-4038-b12e-5f6e65839c83 could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found [0.033407s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow [0.011058s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow [0.011691s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/9498af7d-550d-49b5-82be-fdf820869f21 Openstack-Request-Id: req-4366fe13-c813-4b61-9990-130e552dc26b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "9498af7d-550d-49b5-82be-fdf820869f21", "links": [{"href": "http://localhost/v1/ports/9498af7d-550d-49b5-82be-fdf820869f21", "rel": "self"}, {"href": "http://localhost/ports/9498af7d-550d-49b5-82be-fdf820869f21", "rel": "bookmark"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:33.145322+00:00", "is_smartnic": false} GET: /v1/ports/9498af7d-550d-49b5-82be-fdf820869f21 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'9498af7d-550d-49b5-82be-fdf820869f21', u'links': [{u'href': u'http://localhost/v1/ports/9498af7d-550d-49b5-82be-fdf820869f21', u'rel': u'self'}, {u'href': u'http://localhost/ports/9498af7d-550d-49b5-82be-fdf820869f21', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'updated_at': None, u'physical_network': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {}, u'created_at': u'2019-10-11T05:54:33.145322+00:00', u'is_smartnic': False} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid [0.084391s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': 1234, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-377ebdc8-f66b-4295-af93-706f4b2c3e7f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text [0.083811s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'value3', 'port_id': 'Ethernet1/15', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-9857ece8-8661-454d-ab96-a982fa75d91c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "value3", "port_id": "Ethernet1/15", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:33.391938+00:00", "is_smartnic": false} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys [0.158548s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'value3', 'port_id': 'Ethernet1/15', 'switch_id': 'zz:zz:zz:zz:zz:zz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fd42d3a6-f425-47b3-8c53-f08c3a947a47 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac [0.086805s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-afb0fe42-26da-443c-a5f7-f067e6d37b5e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found [0.037998s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'rescue_password': 'password', 'target': 'rescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-1dbb1279-2aaf-47dd-ac0d-60afa265ee23 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\"}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'rescue_password': 'password', 'target': 'rescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-ffa911f1-7b20-43bb-968a-0be91a71e2b9 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\"}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'rescue_password': 'password', 'target': 'rescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-245df373-0a02-47fc-996c-a0e66a1bec1f 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\"}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'rescue_password': 'password', 'target': 'rescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-32e6bb28-40f0-4ea2-8cc0-ae87c1644776 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states [0.229009s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'rescue_password': 'password', 'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-71412467-109e-4ee7-988b-ab5b4982ca05 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"\\\"rescue_password\\\" is only valid when setting target provision state to rescue\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password [0.120910s] ... 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-ed67e69b-a41b-4625-aa44-a28638f00401 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\"}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-19802743-e630-4c8f-ae4d-1030fa6a8408 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\"}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b53fedc3-e6d8-4a99-b6a5-b9ad949ce2d2 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\"}"} POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': False, 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-9332d0f7-4639-4e22-aae0-44d18d54751a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": false, "portgroup_uuid": null, "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:33.590467+00:00", "is_smartnic": false} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup [0.060217s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': False, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-c7ee5a9a-7e9d-434c-b6f2-4780f42ed1e1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": false, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:33.656682+00:00", "is_smartnic": false} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports [0.068392s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-0e209138-1285-4467-bd45-7b9944fc2576 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports [0.045335s] ... ok GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-89c09940-6442-4c5d-a934-2bd882e287b1 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\"}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-75f8a789-2a5c-43b2-8adf-5461acb6997c 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states [0.292171s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': {'user_data': 'foo'}} GOT:{u'ports': [{u'uuid': u'8b95b8eb-959c-4ca6-814c-b22340a31190', u'links': [{u'href': u'http://localhost/v1/ports/8b95b8eb-959c-4ca6-814c-b22340a31190', u'rel': u'self'}, {u'href': u'http://localhost/ports/8b95b8eb-959c-4ca6-814c-b22340a31190', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}, {u'uuid': u'1d729f77-5296-443c-a901-ce820a2ba831', u'links': [{u'href': u'http://localhost/v1/ports/1d729f77-5296-443c-a901-ce820a2ba831', u'rel': u'self'}, {u'href': u'http://localhost/ports/1d729f77-5296-443c-a901-ce820a2ba831', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}, {u'uuid': u'921ac48b-7e71-4b17-b911-c4f56d81d02e', u'links': [{u'href': u'http://localhost/v1/ports/921ac48b-7e71-4b17-b911-c4f56d81d02e', u'rel': u'self'}, {u'href': u'http://localhost/ports/921ac48b-7e71-4b17-b911-c4f56d81d02e', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:32'}, {u'uuid': u'0904b4a0-f61c-440a-973e-47586acc2d1f', u'links': [{u'href': u'http://localhost/v1/ports/0904b4a0-f61c-440a-973e-47586acc2d1f', u'rel': u'self'}, {u'href': u'http://localhost/ports/0904b4a0-f61c-440a-973e-47586acc2d1f', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:33'}, {u'uuid': u'cb68ff4e-b0c1-4901-8e18-0f344c9ccd81', u'links': [{u'href': u'http://localhost/v1/ports/cb68ff4e-b0c1-4901-8e18-0f344c9ccd81', u'rel': u'self'}, {u'href': u'http://localhost/ports/cb68ff4e-b0c1-4901-8e18-0f344c9ccd81', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:34'}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many [0.087760s] ... ok GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-696e3082-5634-4cf2-8b1e-85930ddcbeaa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict [0.124436s] ... ok 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-da6e35be-ba27-455d-ace6-9de202c18a8e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive [0.088896s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-d2497057-1044-4582-82bf-ef94ca681cb7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:33.769698+00:00", "is_smartnic": false} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports [0.099317s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '02e12d80-9465-45c0-8c36-cca7f47325de', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2272c05f-db63-4ae1-ae13-95ef27a44080 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 02e12d80-9465-45c0-8c36-cca7f47325de could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes [0.039099s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6adb7d6c-df6e-42f5-a509-2e86a72d13a8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found [0.044128s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'vif_port_id': '1c87cefd-e135-42fb-8263-c8c23b1e8011'}, 'pxe_enabled': False, 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-2990fabc-b77a-40b1-a3a8-5ef427b28602 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"vif_port_id": "1c87cefd-e135-42fb-8263-c8c23b1e8011"}, "pxe_enabled": false, "portgroup_uuid": null, "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "1c87cefd-e135-42fb-8263-c8c23b1e8011"}, "created_at": "2019-10-11T05:54:33.944739+00:00", "is_smartnic": false} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup [0.060984s] ... ok 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-34fd7d73-9990-427b-b2c6-15e8ff9c9cbf 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"foo\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value [0.084538s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'vif_port_id': 'd5aa7c59-881c-475c-a07e-48899e717d0c'}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-90f13948-fb54-4aba-b708-245d57c1e3c4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"vif_port_id": "d5aa7c59-881c-475c-a07e-48899e717d0c"}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "d5aa7c59-881c-475c-a07e-48899e717d0c"}, "created_at": "2019-10-11T05:54:34.011385+00:00", "is_smartnic": false} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports [0.064754s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'vif_port_id': 'foo'}, 'pxe_enabled': False, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31'} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'rescue_password': 'password', 'target': 'rescue'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b2c92e85-7b50-4668-b5f1-92ff1f49776d 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 [0.083230s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-57a03776-5533-4ec2-a4ac-1adcfd0c4b2c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"vif_port_id": "foo"}, "pxe_enabled": false, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "foo"}, "created_at": "2019-10-11T05:54:34.079144+00:00"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id [0.071201s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'vif_port_id': 'foo'}, 'pxe_enabled': False, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-aab9612e-652b-429d-8f8a-d8504e41020d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"vif_port_id": "foo"}, "pxe_enabled": false, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "foo"}, "created_at": "2019-10-11T05:54:34.146184+00:00", "is_smartnic": false} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id_deprecated [0.064436s] ... ok GET: /v1/portgroups/123 123/ports {} GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"description\": \"Expected a logical name or UUID but received 123 123.\", \"title\": \"Bad Request\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident [0.025267s] ... ok GET: /v1/ports?sort_key=pxe_enabled {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fd77b99f-b163-4498-8b66-0269269d800c 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed [0.032807s] ... ok PATCH: /v1/ports/bfa30ef2-a98f-48e0-a045-f61fcf902664 [{'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-26ba8362-6b5e-43e2-8f06-7a292b28b2d4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "bfa30ef2-a98f-48e0-a045-f61fcf902664", "links": [{"href": "http://localhost/v1/ports/bfa30ef2-a98f-48e0-a045-f61fcf902664", "rel": "self"}, {"href": "http://localhost/ports/bfa30ef2-a98f-48e0-a045-f61fcf902664", "rel": "bookmark"}], "extra": {"vif_port_id": "bar"}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:33.555635+00:00", "address": "52:55:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "bar", "bar": "buzz"}, "created_at": "2019-10-11T05:54:33.510006+00:00"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id [0.085254s] ... ok 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-69faf456-cb05-4db4-9daa-e6b5f9f0a362 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id [0.039780s] ... ok 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-ea1b79d9-7638-4d8a-898b-f297e164e72a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:33.634159+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid [0.087119s] ... ok 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-e24d2716-7d4c-4525-8a0e-c6e1f0663173 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade [0.043939s] ... ok 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-386ecbb0-9072-40b9-b017-d69b220b4451 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api [0.092074s] ... ok 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-3c75a63d-ddd9-429a-af20-ffc1e9b2ff94 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:33.928405+00:00", "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "created_at": "2019-10-11T05:54:33.873586+00:00"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network [0.129470s] ... 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-997bb08b-5dbe-47ac-b323-14346b5494ca X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid [0.073124s] ... ok 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-6350be8c-198d-487d-aaae-02dc0efdbc5a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist [0.131859s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch', 'hostname': 'host', 'switch_id': 'aa:bb:cc:dd:ee:ff'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': True} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-15caaadd-69f1-4382-b7c3-96eb2aa2a334 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys. Required keys are set(['port_id', 'switch_id']). Or in case of Smart NIC set(['hostname', 'port_id']). Submitted keys are set(['switch_info', 'hostname', 'switch_id']) .\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id [0.074268s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': 'physnet1', 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e27cd353-1125-48d5-833b-1c21457151ed X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade [0.102554s] ... ok 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-598f7b90-bce6-4044-8c6c-9f848f7b92ad X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "created_at": "2019-10-11T05:54:34.196309+00:00", "updated_at": "2019-10-11T05:54:34.270397+00:00", "address": "52:54:00:cf:2d:31"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi [0.123983s] ... ok 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-12d91f93-ecdc-401d-84aa-9ad4b9d9516f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid [0.095656s] ... ok POST: /v1/ports {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': False, 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-01359826-1989-438b-9afd-420dfdedc40d 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version [0.095388s] ... ok 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-4eb727f7-d55c-45eb-8ebc-870250cb97e2 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version [0.083626s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-a4ceeaac-c622-452e-a867-ac53ffe8a78b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device [0.037610s] ... ok PUT: /v1/nodes/node-39/states/console {'enabled': 'true'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6a35078c-a6ba-4758-8f76-eb37a294b141 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported [0.033330s] ... ok DELETE: /v1/portgroups/pg.1 PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] 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-45a9c35f-23c3-4021-9bbb-a50eaf823949 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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'\"}"} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e721382a-de20-496b-b108-ad5571ebd4d0 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} GOT:Response: 204 No Content Openstack-Request-Id: req-dd073f62-9506-42ae-adb6-cfaaffb7c601 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname [0.092442s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request [0.030323s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade [0.080526s] ... ok POST: /v1/nodes {'instance_uuid': None, 'uuid': 'f3170d28-8d31-451f-9293-f6d7c81ec796', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'boot_interface': 'fake', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796 Openstack-Request-Id: req-b921e147-04f0-483c-9885-b74568768510 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796", "rel": "self"}, {"href": "http://localhost/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/states", "rel": "self"}, {"href": "http://localhost/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "f3170d28-8d31-451f-9293-f6d7c81ec796", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/volume", "rel": "self"}, {"href": "http://localhost/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/ports", "rel": "self"}, {"href": "http://localhost/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796 {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'f3170d28-8d31-451f-9293-f6d7c81ec796', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f3170d28-8d31-451f-9293-f6d7c81ec796/ports', u'rel': u'bookmark'}]} POST: /v1/nodes {'instance_uuid': None, 'uuid': '41201327-9104-48e0-9f7b-632141af5588', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'console_interface': 'fake', 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/41201327-9104-48e0-9f7b-632141af5588 Openstack-Request-Id: req-121ea5a0-1539-480e-9edc-c5b22b67d7fe X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/41201327-9104-48e0-9f7b-632141af5588", "rel": "self"}, {"href": "http://localhost/nodes/41201327-9104-48e0-9f7b-632141af5588", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/41201327-9104-48e0-9f7b-632141af5588/states", "rel": "self"}, {"href": "http://localhost/nodes/41201327-9104-48e0-9f7b-632141af5588/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "41201327-9104-48e0-9f7b-632141af5588", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/41201327-9104-48e0-9f7b-632141af5588/volume", "rel": "self"}, {"href": "http://localhost/nodes/41201327-9104-48e0-9f7b-632141af5588/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/41201327-9104-48e0-9f7b-632141af5588/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/41201327-9104-48e0-9f7b-632141af5588/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/41201327-9104-48e0-9f7b-632141af5588/ports", "rel": "self"}, {"href": "http://localhost/nodes/41201327-9104-48e0-9f7b-632141af5588/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/41201327-9104-48e0-9f7b-632141af5588 {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/41201327-9104-48e0-9f7b-632141af5588', u'rel': u'self'}, {u'href': u'http://localhost/nodes/41201327-9104-48e0-9f7b-632141af5588', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/41201327-9104-48e0-9f7b-632141af5588/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/41201327-9104-48e0-9f7b-632141af5588/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'41201327-9104-48e0-9f7b-632141af5588', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/41201327-9104-48e0-9f7b-632141af5588/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/41201327-9104-48e0-9f7b-632141af5588/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/41201327-9104-48e0-9f7b-632141af5588/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/41201327-9104-48e0-9f7b-632141af5588/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/41201327-9104-48e0-9f7b-632141af5588/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/41201327-9104-48e0-9f7b-632141af5588/ports', u'rel': u'bookmark'}]} POST: /v1/nodes {'instance_uuid': None, 'uuid': 'af82a79b-309b-4e8b-a156-41fd0a7f11b7', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'deploy_interface': 'fake', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7 Openstack-Request-Id: req-2ec22d25-731d-4a0b-94e5-5874f38f0e38 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7", "rel": "self"}, {"href": "http://localhost/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/states", "rel": "self"}, {"href": "http://localhost/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "af82a79b-309b-4e8b-a156-41fd0a7f11b7", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/volume", "rel": "self"}, {"href": "http://localhost/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/ports", "rel": "self"}, {"href": "http://localhost/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7 {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7', u'rel': u'self'}, {u'href': u'http://localhost/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'af82a79b-309b-4e8b-a156-41fd0a7f11b7', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/af82a79b-309b-4e8b-a156-41fd0a7f11b7/ports', u'rel': u'bookmark'}]} POST: /v1/nodes {'instance_uuid': None, 'uuid': '551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'inspect_interface': 'fake'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7 Openstack-Request-Id: req-7d0d4925-0bcb-4868-b3f1-de0ae43b5a7d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7", "rel": "self"}, {"href": "http://localhost/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/states", "rel": "self"}, {"href": "http://localhost/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/volume", "rel": "self"}, {"href": "http://localhost/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/ports", "rel": "self"}, {"href": "http://localhost/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7 {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7', u'rel': u'self'}, {u'href': u'http://localhost/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/551ce8c7-5955-4b2c-a7f6-2374d7cf4ad7/ports', u'rel': u'bookmark'}]} POST: /v1/nodes {'instance_uuid': None, 'management_interface': 'fake', 'uuid': 'b77245d3-408c-4965-aa48-48d0b22fa28f', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f Openstack-Request-Id: req-68f519cb-f205-4646-b96b-86c66eeff5d3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f", "rel": "self"}, {"href": "http://localhost/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/states", "rel": "self"}, {"href": "http://localhost/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "b77245d3-408c-4965-aa48-48d0b22fa28f", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/volume", "rel": "self"}, {"href": "http://localhost/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/ports", "rel": "self"}, {"href": "http://localhost/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f', u'rel': u'self'}, {u'href': u'http://localhost/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'b77245d3-408c-4965-aa48-48d0b22fa28f', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/b77245d3-408c-4965-aa48-48d0b22fa28f/ports', u'rel': u'bookmark'}]} POST: /v1/nodes {'instance_uuid': None, 'uuid': '700be99b-97c6-4a48-8c03-20cad90474f5', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'power_interface': 'fake', 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5 Openstack-Request-Id: req-d0e805f1-e463-435f-9596-3ae6e62975ff X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5", "rel": "self"}, {"href": "http://localhost/nodes/700be99b-97c6-4a48-8c03-20cad90474f5", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/states", "rel": "self"}, {"href": "http://localhost/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "700be99b-97c6-4a48-8c03-20cad90474f5", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/volume", "rel": "self"}, {"href": "http://localhost/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/ports", "rel": "self"}, {"href": "http://localhost/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5 {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5', u'rel': u'self'}, {u'href': u'http://localhost/nodes/700be99b-97c6-4a48-8c03-20cad90474f5', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'700be99b-97c6-4a48-8c03-20cad90474f5', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/700be99b-97c6-4a48-8c03-20cad90474f5/ports', u'rel': u'bookmark'}]} POST: /v1/nodes {'instance_uuid': None, 'uuid': 'f21efbd3-3f55-48e4-a735-41d255680ea0', 'raid_interface': 'fake', 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0 Openstack-Request-Id: req-1c43a824-0811-4012-a91e-da4409d411d8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0", "rel": "self"}, {"href": "http://localhost/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/states", "rel": "self"}, {"href": "http://localhost/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "f21efbd3-3f55-48e4-a735-41d255680ea0", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/volume", "rel": "self"}, {"href": "http://localhost/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/ports", "rel": "self"}, {"href": "http://localhost/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0 {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'f21efbd3-3f55-48e4-a735-41d255680ea0', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/f21efbd3-3f55-48e4-a735-41d255680ea0/ports', u'rel': u'bookmark'}]} POST: /v1/nodes {'instance_uuid': None, 'uuid': '4fa5a59b-6484-4a9f-9aba-6e28c9581ad7', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'vendor_interface': 'fake'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7 Openstack-Request-Id: req-5720e3ee-31f5-4b1b-b216-f81c2ae3443c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7", "rel": "self"}, {"href": "http://localhost/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/states", "rel": "self"}, {"href": "http://localhost/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "4fa5a59b-6484-4a9f-9aba-6e28c9581ad7", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/volume", "rel": "self"}, {"href": "http://localhost/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/ports", "rel": "self"}, {"href": "http://localhost/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7 {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'4fa5a59b-6484-4a9f-9aba-6e28c9581ad7', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4fa5a59b-6484-4a9f-9aba-6e28c9581ad7/ports', u'rel': u'bookmark'}]} POST: /v1/nodes {'instance_uuid': None, 'uuid': '0d875a0b-c2e9-4430-8036-775630c8cb6c', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'network_interface': 'flat'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c Openstack-Request-Id: req-ea821415-3da9-45d9-a57c-4c7e4ff22f5f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c", "rel": "self"}, {"href": "http://localhost/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/states", "rel": "self"}, {"href": "http://localhost/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "0d875a0b-c2e9-4430-8036-775630c8cb6c", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/volume", "rel": "self"}, {"href": "http://localhost/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/ports", "rel": "self"}, {"href": "http://localhost/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c', u'rel': u'self'}, {u'href': u'http://localhost/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'0d875a0b-c2e9-4430-8036-775630c8cb6c', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/0d875a0b-c2e9-4430-8036-775630c8cb6c/ports', u'rel': u'bookmark'}]} POST: /v1/nodes {'instance_uuid': None, 'uuid': '90439180-2400-446b-a128-fbbdb5dae20c', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'rescue_interface': 'fake', 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c Openstack-Request-Id: req-5c0c89e0-0150-4b37-815f-23a167b5f6b1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c", "rel": "self"}, {"href": "http://localhost/nodes/90439180-2400-446b-a128-fbbdb5dae20c", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c/states", "rel": "self"}, {"href": "http://localhost/nodes/90439180-2400-446b-a128-fbbdb5dae20c/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "90439180-2400-446b-a128-fbbdb5dae20c", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c/volume", "rel": "self"}, {"href": "http://localhost/nodes/90439180-2400-446b-a128-fbbdb5dae20c/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/90439180-2400-446b-a128-fbbdb5dae20c/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c/ports", "rel": "self"}, {"href": "http://localhost/nodes/90439180-2400-446b-a128-fbbdb5dae20c/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c', u'rel': u'self'}, {u'href': u'http://localhost/nodes/90439180-2400-446b-a128-fbbdb5dae20c', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/90439180-2400-446b-a128-fbbdb5dae20c/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'90439180-2400-446b-a128-fbbdb5dae20c', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/90439180-2400-446b-a128-fbbdb5dae20c/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/90439180-2400-446b-a128-fbbdb5dae20c/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/90439180-2400-446b-a128-fbbdb5dae20c/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/90439180-2400-446b-a128-fbbdb5dae20c/ports', u'rel': u'bookmark'}]} POST: /v1/nodes {'instance_uuid': None, 'uuid': '4cef4564-500e-4576-ab17-456964d752ed', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'storage_interface': 'noop', 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/4cef4564-500e-4576-ab17-456964d752ed Openstack-Request-Id: req-63c3202e-ef0c-49c4-b865-56113b312d53 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/4cef4564-500e-4576-ab17-456964d752ed", "rel": "self"}, {"href": "http://localhost/nodes/4cef4564-500e-4576-ab17-456964d752ed", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/4cef4564-500e-4576-ab17-456964d752ed/states", "rel": "self"}, {"href": "http://localhost/nodes/4cef4564-500e-4576-ab17-456964d752ed/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "4cef4564-500e-4576-ab17-456964d752ed", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/4cef4564-500e-4576-ab17-456964d752ed/volume", "rel": "self"}, {"href": "http://localhost/nodes/4cef4564-500e-4576-ab17-456964d752ed/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/4cef4564-500e-4576-ab17-456964d752ed/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4cef4564-500e-4576-ab17-456964d752ed/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/4cef4564-500e-4576-ab17-456964d752ed/ports", "rel": "self"}, {"href": "http://localhost/nodes/4cef4564-500e-4576-ab17-456964d752ed/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/4cef4564-500e-4576-ab17-456964d752ed {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/4cef4564-500e-4576-ab17-456964d752ed', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4cef4564-500e-4576-ab17-456964d752ed', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/4cef4564-500e-4576-ab17-456964d752ed/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4cef4564-500e-4576-ab17-456964d752ed/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'4cef4564-500e-4576-ab17-456964d752ed', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/4cef4564-500e-4576-ab17-456964d752ed/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4cef4564-500e-4576-ab17-456964d752ed/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/4cef4564-500e-4576-ab17-456964d752ed/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4cef4564-500e-4576-ab17-456964d752ed/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/4cef4564-500e-4576-ab17-456964d752ed/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4cef4564-500e-4576-ab17-456964d752ed/ports', u'rel': u'bookmark'}]} POST: /v1/nodes {'instance_uuid': None, 'uuid': 'a37364b6-e85e-4e8a-bba0-b191d7ef6800', 'driver_info': {'fake_password': 'fakepass', 'foo': 'bar'}, 'extra': {}, 'driver': 'fake-hardware', 'properties': {'memory_mb': '4096', 'cpu_arch': 'x86_64', 'local_gb': '10', 'cpus': '8'}, 'maintenance': False, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'instance_info': {'foo': 'bar', 'image_url': 'http://example.com/test_image_url', 'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ='}, 'bios_interface': 'fake'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800 Openstack-Request-Id: req-52fa8aa1-1156-4f49-a9f1-02da4b026b29 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"target_power_state": null, "inspect_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800", "rel": "self"}, {"href": "http://localhost/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800", "rel": "bookmark"}], "target_provision_state": null, "last_error": null, "storage_interface": "noop", "updated_at": null, "maintenance_reason": null, "states": [{"href": "http://localhost/v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/states", "rel": "self"}, {"href": "http://localhost/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/states", "rel": "bookmark"}], "traits": [], "provision_state": "enroll", "clean_step": {}, "vendor_interface": "fake", "uuid": "a37364b6-e85e-4e8a-bba0-b191d7ef6800", "console_enabled": false, "extra": {}, "raid_config": {}, "provision_updated_at": null, "power_state": null, "target_raid_config": {}, "network_interface": "flat", "inspection_started_at": null, "inspection_finished_at": null, "maintenance": false, "power_interface": "fake", "driver": "fake-hardware", "volume": [{"href": "http://localhost/v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/volume", "rel": "self"}, {"href": "http://localhost/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/volume", "rel": "bookmark"}], "raid_interface": "fake", "rescue_interface": "fake", "boot_interface": "fake", "reservation": null, "management_interface": "fake", "properties": {"memory_mb": "4096", "cpu_arch": "x86_64", "local_gb": "10", "cpus": "8"}, "bios_interface": "fake", "instance_uuid": null, "name": null, "driver_info": {"fake_password": "******", "foo": "bar"}, "resource_class": null, "created_at": "2000-01-01T00:00:00+00:00", "portgroups": [{"href": "http://localhost/v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/portgroups", "rel": "bookmark"}], "deploy_interface": "fake", "ports": [{"href": "http://localhost/v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/ports", "rel": "self"}, {"href": "http://localhost/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/ports", "rel": "bookmark"}], "console_interface": "fake", "driver_internal_info": {}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "instance_info": {"foo": "bar", "image_url": "******", "configdrive": "******"}} GET: /v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800 {} GOT:{u'target_power_state': None, u'inspect_interface': u'fake', u'links': [{u'href': u'http://localhost/v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'storage_interface': u'noop', u'updated_at': None, u'maintenance_reason': None, u'states': [{u'href': u'http://localhost/v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/states', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/states', u'rel': u'bookmark'}], u'traits': [], u'provision_state': u'enroll', u'clean_step': {}, u'vendor_interface': u'fake', u'uuid': u'a37364b6-e85e-4e8a-bba0-b191d7ef6800', u'console_enabled': False, u'extra': {}, u'raid_config': {}, u'provision_updated_at': None, u'power_state': None, u'target_raid_config': {}, u'network_interface': u'flat', u'inspection_started_at': None, u'inspection_finished_at': None, u'maintenance': False, u'driver': u'fake-hardware', u'power_interface': u'fake', u'volume': [{u'href': u'http://localhost/v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/volume', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/volume', u'rel': u'bookmark'}], u'raid_interface': u'fake', u'rescue_interface': u'fake', u'boot_interface': u'fake', u'reservation': None, u'management_interface': u'fake', u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'bios_interface': u'fake', u'instance_uuid': None, u'name': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'resource_class': None, u'created_at': u'2000-01-01T00:00:00+00:00', u'portgroups': [{u'href': u'http://localhost/v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/portgroups', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/portgroups', u'rel': u'bookmark'}], u'deploy_interface': u'fake', u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'console_interface': u'fake', u'driver_internal_info': {}, u'chassis_uuid': u'e74c40e0-d825-11e2-a28f-0800200c9a66', u'ports': [{u'href': u'http://localhost/v1/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/a37364b6-e85e-4e8a-bba0-b191d7ef6800/ports', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces [0.549722s] ... ok 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-a1b63e84-a97d-4287-86a4-72e0bfd103b8 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.078964s] ... ok 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-678d675d-1c16-4eac-af63-399a23dcefcf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported [0.049624s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted Openstack-Request-Id: req-71f7f48c-9f7a-442b-90e4-458243056c28 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode [0.034914s] ... ok 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-6a633922-424e-45ba-853a-2ca8ac84dcb7 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 [0.257600s] ... ok 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-0b53cda8-8f22-4203-b237-bb2e4b528d46 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait [0.049357s] ... ok 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-c75921f9-a772-4014-9134-9be4a8090d6c 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"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync [0.116420s] ... ok 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-4c30b17a-7d96-476d-a4ba-9d61263c924d 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"abort\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state [0.058701s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'a5c2f760-6ad1-4036-94e1-1f985a743b85', 'op': 'remove'}] PUT: /v1/nodes/node-39/traits/CUSTOM_3 {}DELETE: /v1/portgroups/pg.1.json GOT:Response: 204 No Content Openstack-Request-Id: req-bbb1a3f3-d0d7-400a-84b3-d86e8ca7f793 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json [0.080811s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-96c5dfbd-03a1-434a-9cc7-6df0e12faa62 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"adopt\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails [0.064991s] ... 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-1dd306c9-7be3-46c9-a3b5-fa76db52ac18 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail [0.076394s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manageable'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a9ab95be-aee0-44b1-8117-1cc5d05870e0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress [0.058096s] ... ok PUT: /v1/nodes/node-39/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-50dd3170-08c0-4785-b4d3-440585b1abb3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported [0.042242s] ... ok 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-2380f3e1-8e67-48b4-b5fc-5fe481960dcc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver [0.047660s] ... ok 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-e7c91689-1887-4330-a268-a3d683c01408 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver [0.055443s] ... ok 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-fe9517da-720d-4ac9-9e86-3f929e6b394c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver [0.045426s] ... ok 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-6d818958-d284-47ba-926d-177bcd0a812c 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver [0.052534s] ... ok 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-0068bc86-0867-4228-9098-18756a2b4610 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver [0.056820s] ... ok DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-6f0ca591-b56b-41ac-939b-e4ace06e8583 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked [0.077378s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-560b06f0-5e43-4b8d-8c00-8161f3f109ba X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": null, "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "created_at": "2019-10-11T05:54:34.572796+00:00"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove [0.118078s] ... ok 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-b148ded5-70db-445f-8ac5-f08171e89bb7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format [0.034651s] ... ok GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-33beabe1-0dca-4e22-98d0-44db0a47c0d8 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked [0.058584s] ... ok 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, \"description\": \"\", \"title\": \"Method Not Allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version [0.040910s] ... ok 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-76333229-3895-4c86-8606-5d586159a053 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver [0.043289s] ... ok GET: /v1/portgroups {} 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-f4579199-312f-4fcd-8ee1-b5ca555b266a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state [0.069113s] ... ok PUT: /v1/nodes/node-39/states/provision {'target': 'active'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-886e08b6-1dfb-42cc-8991-258dd096d2a5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported [0.047193s] ... ok 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-d6171085-4beb-4067-af33-29f577d45ef0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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\\\".\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request [0.051052s] ... ok 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-408cae92-a1df-403d-9e1f-d6cd2c06798e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"foo": "bar"}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:34.763801+00:00", "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "created_at": "2019-10-11T05:54:34.723061+00:00"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed [0.070077s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-89f5d31a-d8cf-409e-80e1-43df7b7008c8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state [0.114906s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'rescue_password': 'password', 'target': 'rescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-073bdac1-1f60-49d7-b579-91c3cdf5fe81 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 {'rescue_password': 'password', 'target': 'rescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-04f6ffb5-9bf6-443b-9826-55b77d0685d1 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 {'rescue_password': 'password', 'target': 'rescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-c1a4ca01-3b0d-4921-9251-a464ec6007ce 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 {'rescue_password': 'password', 'target': 'rescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-86b4ffbf-870d-4714-973b-1acc1e387c22 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states [0.124469s] ... ok GOT:{u'portgroups': [{u'address': u'52:54:00:cf:2d:30', u'uuid': u'ea0a7f15-1a15-4772-98ef-fa8881b3f619', u'links': [{u'href': u'http://localhost/v1/portgroups/ea0a7f15-1a15-4772-98ef-fa8881b3f619', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/ea0a7f15-1a15-4772-98ef-fa8881b3f619', u'rel': u'bookmark'}], u'name': u'portgroup0'}, {u'address': u'52:54:00:cf:2d:31', u'uuid': u'2bf9edc5-447e-4126-8146-5a35b8730950', u'links': [{u'href': u'http://localhost/v1/portgroups/2bf9edc5-447e-4126-8146-5a35b8730950', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/2bf9edc5-447e-4126-8146-5a35b8730950', u'rel': u'bookmark'}], u'name': u'portgroup1'}, {u'address': u'52:54:00:cf:2d:32', u'uuid': u'656ddfc8-7713-4dc8-8900-62d1596dd58a', u'links': [{u'href': u'http://localhost/v1/portgroups/656ddfc8-7713-4dc8-8900-62d1596dd58a', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/656ddfc8-7713-4dc8-8900-62d1596dd58a', u'rel': u'bookmark'}], u'name': u'portgroup2'}], u'next': u'http://localhost/v1/portgroups?sort_dir=asc&sort_key=id&limit=3&marker=656ddfc8-7713-4dc8-8900-62d1596dd58a'} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit [0.086947s] ... ok 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-e4b091b9-8040-4a3d-9cb4-05cd4b15a2b0 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version [0.041715s] ... ok GET: /v1/portgroups {} DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 204 No Content Openstack-Request-Id: req-7857edfa-a8da-40ab-b773-1f1a848c74be X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait [0.098242s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version [0.034710s] ... ok GOT:{u'portgroups': [{u'address': u'52:54:00:cf:2d:31', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'name': u'fooname'}]} GET: /v1/portgroups?detail=False {} GOT:{u'portgroups': [{u'address': u'52:54:00:cf:2d:31', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'name': u'fooname'}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortObject.test_port_init [0.014607s] ... ok 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-2771eda4-f083-406e-8510-8d7b841db168 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password [0.052076s] ... ok 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, \"description\": \"\", \"title\": \"Method Not Allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version [0.049112s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'}{2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false [0.118251s] ... ok GET: /v1/portgroups?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-10f924b5-0d9e-4d46-a001-03dd73ceb79a 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version [0.029685s] ... ok PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b23e9995-a363-4134-ad7a-3b8b6547eb3d 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": "{\"debuginfo\": null, \"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 _\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait [0.051360s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification [0.009006s] ... ok GET: /v1/portgroups {} GOT:{u'portgroups': []} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty [0.038671s] ... ok GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-612b88b7-5540-496f-815b-b92374445394 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-2d3329a8-6050-4886-b10f-5dff47d4871e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-5ec80bec-9cd5-4bbc-a3ff-b52d5b302fa4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2000-01-01T00:00:00+00:00", "is_smartnic": false} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'updated_at': None, u'physical_network': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {}, u'created_at': u'2000-01-01T00:00:00+00:00', u'is_smartnic': False} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port [0.092709s] ... ok DELETE: /v1/ports/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4c4f6311-7f6b-4240-a42f-e3bea4eb6738 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress [0.040509s] ... ok GET: /v1/ports/?limit=3 {} GET: /v1/portgroups/?fields=address,properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-201c226e-d01f-4bcb-8248-d32379077791 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version [0.037929s] ... ok GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7464b41e-1db0-46c6-9a83-10f436d5a53e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version [0.030133s] ... ok GOT:{u'ports': [{u'uuid': u'e0df1217-676c-4056-b1fb-dd9d1d09585b', u'links': [{u'href': u'http://localhost/v1/ports/e0df1217-676c-4056-b1fb-dd9d1d09585b', u'rel': u'self'}, {u'href': u'http://localhost/ports/e0df1217-676c-4056-b1fb-dd9d1d09585b', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}, {u'uuid': u'1fe8cf94-72b6-498a-ac4c-7295468eab1e', u'links': [{u'href': u'http://localhost/v1/ports/1fe8cf94-72b6-498a-ac4c-7295468eab1e', u'rel': u'self'}, {u'href': u'http://localhost/ports/1fe8cf94-72b6-498a-ac4c-7295468eab1e', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}, {u'uuid': u'b9e099cf-186a-45b2-90f7-101a4ec76a1b', u'links': [{u'href': u'http://localhost/v1/ports/b9e099cf-186a-45b2-90f7-101a4ec76a1b', u'rel': u'self'}, {u'href': u'http://localhost/ports/b9e099cf-186a-45b2-90f7-101a4ec76a1b', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:32'}], u'next': u'http://localhost/v1/ports?sort_dir=asc&sort_key=id&limit=3&marker=b9e099cf-186a-45b2-90f7-101a4ec76a1b'} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links [0.082995s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-15d131bb-01d7-4142-ad23-895d77882778 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single [0.044549s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'foo': 123}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-f0a197e9-d1ae-4791-84e2-a2cebdf7b755 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"foo": 123}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:34.973983+00:00", "is_smartnic": false} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {u'foo': 123}, u'pxe_enabled': True, u'portgroup_uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'updated_at': None, u'physical_network': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {}, u'created_at': u'2019-10-11T05:54:34.973983+00:00', u'is_smartnic': False} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4.json {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:35.066831+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json [0.050330s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id [0.097929s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'}POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-56a54328-24b1-4a35-a031-90690145ac4b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error [0.052197s] ... ok GET: /v1/portgroups?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8e5e2e8a-213e-44d9-b991-f5ebfcb574f3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format [0.037127s] ... ok GET: /v1/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-152777fa-d4b8-4531-8237-107dcdb71a54 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version [0.039801s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-60eb1543-0c39-48be-8238-429889a03bf5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp'. Value should have a maximum character requirement of 64\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long [0.059540s] ... ok GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed [0.031194s] ... ok GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-ca0b81e9-0247-4e26-b801-a1f6b4580b2a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states [0.287433s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted', 'configdrive': 'foo'} GET: /v1/ports/detail?node=test-node {} GOT:{u'ports': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:35.142851+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31'}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok [0.048233s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7ca435fd-7587-4460-8b45-9b73b07b7465 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active [0.045675s] ... ok GET: /v1/ports?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e52d7f07-143f-4181-a57c-7d4b7baba95f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields [0.032227s] ... ok POST: /v1/ports {'local_link_connection': {'port_id': 'Ethernet1/15', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-dc4f11a8-7c87-45c5-a7ac-d6db22b9d52b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"port_id": "Ethernet1/15", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:35.205538+00:00", "is_smartnic": false} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional [0.083246s] ... ok GET: /v1/ports?detail=False&fields=internal_info {} GET: /v1/portgroups?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-45228484-8e8c-4d78-89f6-eab8d19e781d 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed [0.033605s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'}GOT:{u'ports': [{u'internal_info': {u'bar': u'buzz'}, u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields [0.073449s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-cae4a1cd-cd68-4aa1-9510-4624c657d0d1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail [0.064600s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-dd4cff40-27c6-4a82-bbb8-eef8d3d663e2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:35.265165+00:00", "is_smartnic": false} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup [0.057002s] ... ok GET: /v1/ports {} GOT:{u'ports': []} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty [0.046047s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-899b8852-eb51-4418-9fe0-00a9f28a1433 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_cannot_send_create_port [0.046745s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'none': None, 'int': 123, 'float': 0.1, 'list': [1, 2], 'bool': True, 'str': 'foo', 'dict': {'cat': 'meow'}}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GET: /v1/ports?node=test-node {}PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': {'meta_data': {'hostname': 'example.com'}, 'user_data': {'serialize': 'me'}, 'network_data': {'links': []}}} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-e306e5fa-7224-49fd-ab27-1dfe117b82c3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields [0.046354s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5a7bac6e-1eb1-4eed-aa3a-7016e5ee13ca X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:35.255856+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} 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-01527216-a00b-4e4a-a0bb-c81e3a2633a1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild [0.050296s] ... ok 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-9b9cf562-82c5-40de-87a0-ead6a7c405f5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down [0.049937s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-266b3014-e016-4561-a1a3-7988931a99cc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"none": null, "int": 123, "float": 0.1, "list": [1, 2], "dict": {"cat": "meow"}, "str": "foo", "bool": true}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:35.379199+00:00", "is_smartnic": false} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {u'none': None, u'int': 123, u'float': 0.1, u'list': [1, 2], u'bool': True, u'str': u'foo', u'dict': {u'cat': u'meow'}}, u'pxe_enabled': True, u'portgroup_uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'updated_at': None, u'physical_network': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {}, u'created_at': u'2019-10-11T05:54:35.379199+00:00', u'is_smartnic': False} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra [0.084796s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:{u'ports': [{u'uuid': u'b8f4e884-3ff0-41f3-b297-fd11f4057769', u'links': [{u'href': u'http://localhost/v1/ports/b8f4e884-3ff0-41f3-b297-fd11f4057769', u'rel': u'self'}, {u'href': u'http://localhost/ports/b8f4e884-3ff0-41f3-b297-fd11f4057769', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}, {u'uuid': u'87586aa0-4dcb-428d-80bc-1c5e1f2bf051', u'links': [{u'href': u'http://localhost/v1/ports/87586aa0-4dcb-428d-80bc-1c5e1f2bf051', u'rel': u'self'}, {u'href': u'http://localhost/ports/87586aa0-4dcb-428d-80bc-1c5e1f2bf051', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}, {u'uuid': u'6d528231-8d16-42d2-a504-80c369138243', u'links': [{u'href': u'http://localhost/v1/ports/6d528231-8d16-42d2-a504-80c369138243', u'rel': u'self'}, {u'href': u'http://localhost/ports/6d528231-8d16-42d2-a504-80c369138243', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:32'}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok [0.080248s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid [0.067738s] ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2ae3971c-a69f-4f2b-8136-d1ec26f2c88a 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported [0.038770s] ... ok 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-3d4d9dfa-4b88-4250-adf9-22a9e550fc60 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error [0.033588s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'vif_port_id': '0f687b58-f95c-4c34-9896-fa0a75326a24'}, 'pxe_enabled': False, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2d38b823-fc70-4662-bf1d-de133ac45239 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_nostandalone_ports [0.075817s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'vif_port_id': '809a69fe-5d77-41fb-ac6b-7949be25fb61'}, 'pxe_enabled': True, 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} 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-436d1bbb-7b24-4fd3-809a-03d24b3f9a3e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid [0.033849s] ... ok 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-0d400d05-a310-44c3-b555-7dbff021400c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"foo2": "bar2", "foo3": "bar3"}, "created_at": "2019-10-11T05:54:35.318002+00:00", "updated_at": "2019-10-11T05:54:35.321576+00:00", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b2abcc5b-4c04-4292-a0f4-f20f38936a75 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:35.318002+00:00", "updated_at": "2019-10-11T05:54:35.321576+00:00", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi [0.096437s] ... ok PUT: /v1/nodes/node-39/maintenance {} 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-f1980845-1761-4752-a9b2-fc179efb3d7e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid [0.032460s] ... ok 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-67dba046-7fb1-4a17-b46f-28e7fa4c5fef X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid [0.039279s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-b209ba49-5edd-4b47-b8f8-a31369a14d9e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"vif_port_id": "809a69fe-5d77-41fb-ac6b-7949be25fb61"}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "809a69fe-5d77-41fb-ac6b-7949be25fb61"}, "created_at": "2019-10-11T05:54:35.539198+00:00", "is_smartnic": false} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup [0.087079s] ... ok 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-43802b73-54c7-4dd1-9075-4d06980ec957 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic {} GOT:{u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'is_smartnic': True} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic [0.056435s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f07a2c3e-37ea-4f22-90a8-7d6d1fca9894 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:35.489281+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "aa:bb:cc:dd:ee:ff", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular [0.062287s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'created_at': u'2019-10-11T05:54:35.512871+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'updated_at': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:35.512871+00:00'} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid [0.075001s] ... ok GOT:Response: 202 Accepted Openstack-Request-Id: req-b2087d10-b31d-4220-a3b4-d9a3512c64aa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name [0.083838s] ... ok PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2aae5080-06e8-4d8f-8625-1dae46e7046a 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found [0.052337s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} 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-aab59b4e-25e3-4d4b-b624-645faffaca2a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"foo": "bar"}, "created_at": "2019-10-11T05:54:35.552960+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid [0.058350s] ... 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-8dcb49e5-6011-4d60-9b1e-4c20f80ca3f8 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot update portgroup \\\"6eb02b44-18a3-4659-8c0b-8d2802581ae4\\\" on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed [0.063482s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-cd6cb891-43aa-4181-9e52-e06181f7c5f5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:35.663582+00:00", "is_smartnic": false} PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4ee20e88-067c-4042-adbc-6a2508b7b237 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"too many traits\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit [0.048055s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value [0.140478s] ... ok GET: /v1/ports/9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625', u'links': [{u'href': u'http://localhost/v1/ports/9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625', u'rel': u'self'}, {u'href': u'http://localhost/ports/9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:35.586217+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31'} GET: /v1/ports/9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625', u'links': [{u'href': u'http://localhost/v1/ports/9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625', u'rel': u'self'}, {u'href': u'http://localhost/ports/9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:35.586217+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31'} GET: /ports/9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625', u'links': [{u'href': u'http://localhost/v1/ports/9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625', u'rel': u'self'}, {u'href': u'http://localhost/ports/9c56cb7a-218e-4fc4-a0f7-3fb8ebbcc625', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:35.586217+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31'} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links [0.088364s] ... ok GET: /v1/ports {} GOT:{u'ports': []} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node [0.037081s] ... ok DELETE: /v1/nodes/node-39/traits GET: /v1/ports?sort_key=uuid {} POST: /v1/ports {'local_link_connection': {'switch_info': 'switch', 'port_id': 'Gig0/1', 'switch_id': 'aa:bb:cc:dd:ee:ff'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': True} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3d14752b-de9f-43b3-a41a-c8062c020195 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:35.670729+00:00", "updated_at": "2019-10-11T05:54:35.705991+00:00", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "bar", "bar": "buzz"}, "properties": {}, "name": "fooname"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_same [0.064310s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPortgroupObject.test_portgroup_init [0.007574s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {'foo': 123}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-b980cb29-1f29-4fce-81b8-dd73af19bc5c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"foo": 123}, "created_at": "2019-10-11T05:54:35.759597+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {}, "properties": {}, "name": "fooname"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {u'foo': 123}, u'created_at': u'2019-10-11T05:54:35.759597+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id [0.059776s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': 'AA:AA:AA:11:22:33', 'name': 'aa:bb_cc'} GOT:Response: 204 No Content Openstack-Request-Id: req-4178fc73-47bb-4364-bda3-ee79fc325456 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits [0.086461s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0eb54aff-9793-4194-8341-e96f88b509d3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname [0.082555s] ... ok DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version [0.048098s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': 'physnet1', 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:{u'ports': [{u'uuid': u'4cf0511b-e1b1-473e-8e5d-778f5aac009e', u'links': [{u'href': u'http://localhost/v1/ports/4cf0511b-e1b1-473e-8e5d-778f5aac009e', u'rel': u'self'}, {u'href': u'http://localhost/ports/4cf0511b-e1b1-473e-8e5d-778f5aac009e', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}, {u'uuid': u'4f6efc7b-133f-4341-a0cb-fc30156a5ede', u'links': [{u'href': u'http://localhost/v1/ports/4f6efc7b-133f-4341-a0cb-fc30156a5ede', u'rel': u'self'}, {u'href': u'http://localhost/ports/4f6efc7b-133f-4341-a0cb-fc30156a5ede', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:32'}, {u'uuid': u'570b2067-2f46-4f49-842e-64fc43f2dd2d', u'links': [{u'href': u'http://localhost/v1/ports/570b2067-2f46-4f49-842e-64fc43f2dd2d', u'rel': u'self'}, {u'href': u'http://localhost/ports/570b2067-2f46-4f49-842e-64fc43f2dd2d', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key [0.065985s] ... ok PATCH: /v1/ports/bfabe1b7-f778-423a-b38b-f5c284e8b44e [{'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-6ba9b638-f3a2-4083-9dac-f90464c79e8b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "bfabe1b7-f778-423a-b38b-f5c284e8b44e", "links": [{"href": "http://localhost/v1/ports/bfabe1b7-f778-423a-b38b-f5c284e8b44e", "rel": "self"}, {"href": "http://localhost/ports/bfabe1b7-f778-423a-b38b-f5c284e8b44e", "rel": "bookmark"}], "extra": {"vif_port_id": "bar"}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:35.817279+00:00", "physical_network": null, "address": "52:55:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "bar", "bar": "buzz"}, "created_at": "2019-10-11T05:54:35.783213+00:00"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_deprecated [0.070618s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ac98326d-21d5-4712-95bf-dfdf3d5ddab0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\"}"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid [0.039757s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-8c904699-c12a-4814-a40d-506be89043dc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:35.860332+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {}, "properties": {}, "name": "fooname"} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_no_extra [0.046612s] ... ok POST: /v1/heartbeat/4644512c-d2af-4399-992d-3b97ac380140 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-44d6122b-50fc-4c4d-94af-bd1d1912f937 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 4644512c-d2af-4399-992d-3b97ac380140 could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found [0.033620s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-02d29788-347c-457b-835a-4a1fea61cc02 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": "physnet1", "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:35.885070+00:00", "is_smartnic": false} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network [0.130024s] ... ok DELETE: /v1/nodes/node-39/traits POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {'callback_url': 'url'} GOT:Response: 204 No Content Openstack-Request-Id: req-92ac538f-97d3-43fb-8e20-1d3840ddd3b5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis [0.098627s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac2564a8-8216-4c2e-abd0-43b83a45dd49 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:35.880132+00:00", "physical_network": "physnet1", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "created_at": "2019-10-11T05:54:35.849281+00:00"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network [0.064785s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'f421c62e-d5de-43e6-a714-0022bc45f7a8', 'op': 'add'}] POST: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False}GOT:Response: 202 Accepted Openstack-Request-Id: req-1c883934-e0d5-463d-8a2a-4c796445e5fd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json [0.060769s] ... ok DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e8fc301f-7159-4a1a-a702-69e9355440e7 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found [0.048183s] ... ok GET: /v1/nodes/badname/traits {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-108f9e3f-2f39-454d-8873-5259e9c77a1c 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post [0.064489s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ac59fb6-815f-4cf7-9432-ffc5c1cac3fe X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "f421c62e-d5de-43e6-a714-0022bc45f7a8", "updated_at": "2019-10-11T05:54:35.965812+00:00", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "created_at": "2019-10-11T05:54:35.924373+00:00"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid [0.095472s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a715f12c-14ea-470a-a817-5b96e7abcaf5 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node badname could not be found.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found [0.045407s] ... ok POST: /v1/heartbeat/f6cea893-f8e0-410c-95ed-ace714facb4d {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cff7c7af-c469-497a-af78-dd4b3ca48e35 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version [0.050623s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok [0.014409s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-638c4b97-349c-4421-9159-7026ce8ed71d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp'. Value should have a maximum character requirement of 64\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long [0.044786s] ... ok DELETE: /v1/portgroups/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"description\": \"Expected a logical name or UUID but received 52:54:00:cf:2d:31.\", \"title\": \"Bad Request\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress [0.034962s] ... ok GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/detail {} PUT: /v1/nodes/node-39/traits {'trait': 'CUSTOM_3'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4676fe4e-c61b-47d8-9d6a-57aaea4dc425 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"No body should be provided when adding a trait\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body [0.050532s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high [0.033223s] ... ok GET: /v1/ {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-76efef68-209a-4cf1-abe1-61d98dc45860 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single [0.073007s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/6656dafa-73a6-4f00-bc69-0b562a3ab625 [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-06972148-5fa1-4bf4-af0e-8b17b7463579 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch [0.052993s] ... ok PATCH: /v1/ports/6a076cfc-956f-43da-8bb2-40bf00a88b0a [{'path': '/extra/vif_port_id', 'op': 'remove'}] PUT: /v1/nodes/node-39/traits {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fc5125cc-a46a-4a9e-8155-0798566595c5 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": "{\"debuginfo\": null, \"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.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body [0.047975s] ... ok GET: /v1/portgroups/detail?sort_key=mode {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9899d758-3a36-4ca8-90bc-43fd71cc5aee X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6a076cfc-956f-43da-8bb2-40bf00a88b0a", "links": [{"href": "http://localhost/v1/ports/6a076cfc-956f-43da-8bb2-40bf00a88b0a", "rel": "self"}, {"href": "http://localhost/ports/6a076cfc-956f-43da-8bb2-40bf00a88b0a", "rel": "bookmark"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:36.144380+00:00", "address": "52:55:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "bar"}, "created_at": "2019-10-11T05:54:36.114773+00:00"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_same [0.067588s] ... ok GET: /v1/ports/detail?node=test-node {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a924b683-2fcb-428d-8d33-a10f6c8ed4e0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported [0.037354s] ... ok GOT:{u'media_types': [{u'base': u'application/json', u'type': u'application/vnd.openstack.ironic.v1+json'}], u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}, {u'href': u'https://docs.openstack.org//ironic/latest/contributor//webapi.html', u'type': u'text/html', u'rel': u'describedby'}], u'drivers': [{u'href': u'http://localhost/v1/drivers/', u'rel': u'self'}, {u'href': u'http://localhost/drivers/', u'rel': u'bookmark'}], u'id': u'v1', u'version': {u'status': u'CURRENT', u'min_version': u'1.1', u'version': u'1.58', u'id': u'v1', u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}]}, u'nodes': [{u'href': u'http://localhost/v1/nodes/', u'rel': u'self'}, {u'href': u'http://localhost/nodes/', u'rel': u'bookmark'}], u'ports': [{u'href': u'http://localhost/v1/ports/', u'rel': u'self'}, {u'href': u'http://localhost/ports/', u'rel': u'bookmark'}], u'chassis': [{u'href': u'http://localhost/v1/chassis/', u'rel': u'self'}, {u'href': u'http://localhost/chassis/', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version [0.047023s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value [0.014603s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values [0.023150s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_simple_event_type [0.014403s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value [0.033610s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path [0.009791s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path [0.009858s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_invalid_values [0.008699s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_local_link_keys_mandatory [0.007370s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] {2} ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr [0.008347s] ... ok GET: /v1/ports/detail?sort_key=pxe_enabled {} GOT:{u'ports': [{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'5acb4dbe-9df6-4b79-8b94-5034160d0f78', u'links': [{u'href': u'http://localhost/v1/ports/5acb4dbe-9df6-4b79-8b94-5034160d0f78', u'rel': u'self'}, {u'href': u'http://localhost/ports/5acb4dbe-9df6-4b79-8b94-5034160d0f78', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': False, u'portgroup_uuid': None, u'updated_at': None, u'physical_network': None, u'address': u'52:54:00:cf:2d:30', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:36.189275+00:00', u'is_smartnic': False}, {u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'72b129da-dac1-4da0-aa1b-ce2e3b93aa4c', u'links': [{u'href': u'http://localhost/v1/ports/72b129da-dac1-4da0-aa1b-ce2e3b93aa4c', u'rel': u'self'}, {u'href': u'http://localhost/ports/72b129da-dac1-4da0-aa1b-ce2e3b93aa4c', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': None, u'updated_at': None, u'physical_network': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:36.191098+00:00', u'is_smartnic': False}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed [0.063964s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid [0.008689s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent [0.007844s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields [0.007693s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove [0.008191s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success [0.007304s] ... ok GET: /v1/ports?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7c419229-0a9f-4958-8b4b-28c88c242f02 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version [0.038338s] ... ok GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace [0.022002s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_trait [0.008609s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi [0.008586s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47291604-a17a-4de0-8316-5dd7b6126d30 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"foo2": "bar2", "foo3": "bar3"}, "created_at": "2019-10-11T05:54:36.201274+00:00", "updated_at": "2019-10-11T05:54:36.273500+00:00", "address": "52:54:00:cf:2d:31"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] GOT:{u'ports': [{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'updated_at': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:36.289506+00:00'}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid [0.074508s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort [0.009113s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields [0.011018s] ... ok GOT:{u'portgroups': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'e5536a55-f010-453c-947f-8e085f18f708', u'links': [{u'href': u'http://localhost/v1/portgroups/e5536a55-f010-453c-947f-8e085f18f708', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/e5536a55-f010-453c-947f-8e085f18f708', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.129911+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'mode_1', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/e5536a55-f010-453c-947f-8e085f18f708/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/e5536a55-f010-453c-947f-8e085f18f708/ports', u'rel': u'bookmark'}], u'name': u'portgroup1'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'44b88250-604b-4e29-a000-d1a2343daa55', u'links': [{u'href': u'http://localhost/v1/portgroups/44b88250-604b-4e29-a000-d1a2343daa55', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/44b88250-604b-4e29-a000-d1a2343daa55', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.128308+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'mode_2', u'address': u'52:54:00:cf:2d:32', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/44b88250-604b-4e29-a000-d1a2343daa55/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/44b88250-604b-4e29-a000-d1a2343daa55/ports', u'rel': u'bookmark'}], u'name': u'portgroup2'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'4fa72232-6f64-4495-b3d8-e9dd715bf3b6', u'links': [{u'href': u'http://localhost/v1/portgroups/4fa72232-6f64-4495-b3d8-e9dd715bf3b6', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/4fa72232-6f64-4495-b3d8-e9dd715bf3b6', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.126621+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'mode_3', u'address': u'52:54:00:cf:2d:33', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/4fa72232-6f64-4495-b3d8-e9dd715bf3b6/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/4fa72232-6f64-4495-b3d8-e9dd715bf3b6/ports', u'rel': u'bookmark'}], u'name': u'portgroup3'}]} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed [0.085031s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic [0.008465s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs [0.008792s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail [0.008190s] ... ok GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-89999c72-5b2d-4c7e-a599-0bc882bc8b8e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version [0.042484s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail [0.015016s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail [0.008765s] ... ok GET: /v1/portgroups?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b0cde88d-297f-490d-979f-758f93706430 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields [0.033753s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0904284a-fed8-460c-8ab8-34fdb6cd5aa3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:36.201274+00:00", "updated_at": "2019-10-11T05:54:36.331352+00:00", "address": "52:54:00:cf:2d:31"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi [0.202073s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GET: /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{u'portgroups': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.237633+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'}]} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok [0.060217s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none [0.013856s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name [0.009220s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid [0.008856s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fa21cf72-0952-4c96-abfd-01e7a9170e1d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id [0.071553s] ... ok GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-77f97688-b1d7-47d1-9370-bd48e701b89d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields [0.071017s] ... ok GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,extra {} GOT:{u'address': u'52:54:00:cf:2d:31', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields [0.045187s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy [0.020864s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str [0.007931s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str [0.011364s] ... ok GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-72bafd24-07d1-4919-a024-252d5ae7e955 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version [0.045725s] ... ok GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.447032+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'pg.1'} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix [0.067376s] ... ok 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-8e025a42-d9b0-4451-b3fe-fde1da40d96e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail [0.071844s] ... ok GET: /v1/volume/connectors?detail=True&limit=3 {} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ec8886d8-0593-4d66-b43f-de4b8163ec1f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields [0.039682s] ... ok 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-a7ee3fd8-12eb-45b8-8e65-12b9e40c0712 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade [0.044997s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'dee4b686-b9e7-4aec-a8fb-6b0a1710704d', u'links': [{u'href': u'http://localhost/v1/volume/connectors/dee4b686-b9e7-4aec-a8fb-6b0a1710704d', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/dee4b686-b9e7-4aec-a8fb-6b0a1710704d', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.495582+00:00', u'updated_at': None, u'connector_id': u'test-connector_id-0', u'type': u'iqn'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'38d18824-ea6b-4229-8d50-efa61ede859b', u'links': [{u'href': u'http://localhost/v1/volume/connectors/38d18824-ea6b-4229-8d50-efa61ede859b', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/38d18824-ea6b-4229-8d50-efa61ede859b', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.497139+00:00', u'updated_at': None, u'connector_id': u'test-connector_id-1', u'type': u'iqn'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'7aa3dcd6-a73e-4f98-a60a-2d1711064b14', u'links': [{u'href': u'http://localhost/v1/volume/connectors/7aa3dcd6-a73e-4f98-a60a-2d1711064b14', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/7aa3dcd6-a73e-4f98-a60a-2d1711064b14', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.498578+00:00', u'updated_at': None, u'connector_id': u'test-connector_id-2', u'type': u'iqn'}], u'next': u'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=7aa3dcd6-a73e-4f98-a60a-2d1711064b14'} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail [0.067619s] ... ok GET: /v1/portgroups {} GOT:{u'portgroups': [{u'address': u'52:54:00:cf:2d:30', u'uuid': u'28edc4fa-6937-4bef-bc62-2d3674dc2e04', u'links': [{u'href': u'http://localhost/v1/portgroups/28edc4fa-6937-4bef-bc62-2d3674dc2e04', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/28edc4fa-6937-4bef-bc62-2d3674dc2e04', u'rel': u'bookmark'}], u'name': u'portgroup0'}, {u'address': u'52:54:00:cf:2d:31', u'uuid': u'd2503c7b-e10e-4408-9f49-1ac45f9f7fe2', u'links': [{u'href': u'http://localhost/v1/portgroups/d2503c7b-e10e-4408-9f49-1ac45f9f7fe2', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/d2503c7b-e10e-4408-9f49-1ac45f9f7fe2', u'rel': u'bookmark'}], u'name': u'portgroup1'}, {u'address': u'52:54:00:cf:2d:32', u'uuid': u'3b7d99d5-3e36-4d9c-9a79-242825c5a5c6', u'links': [{u'href': u'http://localhost/v1/portgroups/3b7d99d5-3e36-4d9c-9a79-242825c5a5c6', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/3b7d99d5-3e36-4d9c-9a79-242825c5a5c6', u'rel': u'bookmark'}], u'name': u'portgroup2'}, {u'address': u'52:54:00:cf:2d:33', u'uuid': u'ab90732f-dbfb-4a2e-9a8f-b2e424e6d773', u'links': [{u'href': u'http://localhost/v1/portgroups/ab90732f-dbfb-4a2e-9a8f-b2e424e6d773', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/ab90732f-dbfb-4a2e-9a8f-b2e424e6d773', u'rel': u'bookmark'}], u'name': u'portgroup3'}, {u'address': u'52:54:00:cf:2d:34', u'uuid': u'313540bc-bc8c-408e-98fd-43da4b9c4c36', u'links': [{u'href': u'http://localhost/v1/portgroups/313540bc-bc8c-408e-98fd-43da4b9c4c36', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/313540bc-bc8c-408e-98fd-43da4b9c4c36', u'rel': u'bookmark'}], u'name': u'portgroup4'}]} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many [0.083893s] ... ok GET: /v1/portgroups?address=aa:bb:cc:dd:ee:ff {} GOT:{u'portgroups': []} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-94034331-ae7f-4dfa-93ea-8bfc590e8441 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:36.542064+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid [0.100730s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': None, u'updated_at': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:36.525740+00:00'} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none [0.039627s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address [0.030660s] ... ok 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-4ef2c210-94b8-455c-b68a-954dc9cfc6de X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields [0.042404s] ... ok GET: /v1/volume/connectors {} GOT:{u'connectors': []} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty [0.044770s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': None, u'updated_at': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:36.585886+00:00'} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': None, u'updated_at': None, u'physical_network': u'physnet1', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:36.585886+00:00'} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network [0.072617s] ... ok GET: /v1/portgroups/0f50008e-b55e-489a-8f09-d46c3d04d3b8/ports {} GOT:{u'ports': [{u'uuid': u'29933a59-be57-4190-9564-d9b1990dd8f7', u'links': [{u'href': u'http://localhost/v1/ports/29933a59-be57-4190-9564-d9b1990dd8f7', u'rel': u'self'}, {u'href': u'http://localhost/ports/29933a59-be57-4190-9564-d9b1990dd8f7', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}, {u'uuid': u'25e44222-cdb3-495c-a85c-5332efd4bb53', u'links': [{u'href': u'http://localhost/v1/ports/25e44222-cdb3-495c-a85c-5332efd4bb53', u'rel': u'self'}, {u'href': u'http://localhost/ports/25e44222-cdb3-495c-a85c-5332efd4bb53', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}]} GET: /v1/portgroups/0f50008e-b55e-489a-8f09-d46c3d04d3b8/ports/detail {} GET: /v1/volume/connectors?fields=connector_id&limit=2 {} GOT:{u'connectors': [{u'links': [{u'href': u'http://localhost/v1/volume/connectors/899d3ea4-4fc7-42f9-afbf-88cc40a4203a', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/899d3ea4-4fc7-42f9-afbf-88cc40a4203a', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-0'}, {u'links': [{u'href': u'http://localhost/v1/volume/connectors/ca78c6fd-0906-4708-8aea-fd83670f295e', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/ca78c6fd-0906-4708-8aea-fd83670f295e', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-1'}], u'next': u'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=2&marker=ca78c6fd-0906-4708-8aea-fd83670f295e'} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid [0.057139s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': None, u'updated_at': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:36.640269+00:00'} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade [0.050731s] ... ok GOT:{u'ports': [{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'29933a59-be57-4190-9564-d9b1990dd8f7', u'links': [{u'href': u'http://localhost/v1/ports/29933a59-be57-4190-9564-d9b1990dd8f7', u'rel': u'self'}, {u'href': u'http://localhost/ports/29933a59-be57-4190-9564-d9b1990dd8f7', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': u'0f50008e-b55e-489a-8f09-d46c3d04d3b8', u'updated_at': None, u'physical_network': None, u'address': u'52:54:00:cf:2d:30', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:36.628907+00:00', u'is_smartnic': False}, {u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'25e44222-cdb3-495c-a85c-5332efd4bb53', u'links': [{u'href': u'http://localhost/v1/ports/25e44222-cdb3-495c-a85c-5332efd4bb53', u'rel': u'self'}, {u'href': u'http://localhost/ports/25e44222-cdb3-495c-a85c-5332efd4bb53', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': u'0f50008e-b55e-489a-8f09-d46c3d04d3b8', u'updated_at': None, u'physical_network': None, u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'created_at': u'2019-10-11T05:54:36.630596+00:00', u'is_smartnic': False}]} GET: /v1/portgroups/0f50008e-b55e-489a-8f09-d46c3d04d3b8/ports?limit=1 {} GOT:{u'ports': [{u'uuid': u'29933a59-be57-4190-9564-d9b1990dd8f7', u'links': [{u'href': u'http://localhost/v1/ports/29933a59-be57-4190-9564-d9b1990dd8f7', u'rel': u'self'}, {u'href': u'http://localhost/ports/29933a59-be57-4190-9564-d9b1990dd8f7', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}], u'next': u'http://localhost/v1/ports?sort_dir=asc&sort_key=id&limit=1&marker=29933a59-be57-4190-9564-d9b1990dd8f7'} GET: /v1/portgroups/0f50008e-b55e-489a-8f09-d46c3d04d3b8/ports/48a54961-e1b4-4b23-a672-652a30c47679 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} GET: /v1/portgroups/0f50008e-b55e-489a-8f09-d46c3d04d3b8/ports/2b33175b-e3b4-47c9-a31b-c339ca499ad8 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2396fac2-7d17-4444-8e74-2538270b35d8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource [0.137209s] ... ok GET: /v1/ports/e34b6ded-51fb-4863-87a3-8b667bcb864f {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'e34b6ded-51fb-4863-87a3-8b667bcb864f', u'links': [{u'href': u'http://foo/v1/ports/e34b6ded-51fb-4863-87a3-8b667bcb864f', u'rel': u'self'}, {u'href': u'http://foo/ports/e34b6ded-51fb-4863-87a3-8b667bcb864f', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.706042+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31'} GET: /v1/ports/e34b6ded-51fb-4863-87a3-8b667bcb864f {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'e34b6ded-51fb-4863-87a3-8b667bcb864f', u'links': [{u'href': u'http://foo/v1/ports/e34b6ded-51fb-4863-87a3-8b667bcb864f', u'rel': u'self'}, {u'href': u'http://foo/ports/e34b6ded-51fb-4863-87a3-8b667bcb864f', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.706042+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31'} GET: /ports/e34b6ded-51fb-4863-87a3-8b667bcb864f {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'e34b6ded-51fb-4863-87a3-8b667bcb864f', u'links': [{u'href': u'http://foo/v1/ports/e34b6ded-51fb-4863-87a3-8b667bcb864f', u'rel': u'self'}, {u'href': u'http://foo/ports/e34b6ded-51fb-4863-87a3-8b667bcb864f', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.706042+00:00', u'updated_at': None, u'address': u'52:54:00:cf:2d:31'} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url [0.089486s] ... ok 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-e9a3c8bf-fa69-4a9d-8c59-901d01dde913 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields [0.049482s] ... ok GET: /v1/ports/detail {} 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-9efd62e0-10cd-411c-9af5-37a0ebc76b76 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:36.695479+00:00", "physical_network": "physnet2", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "created_at": "2019-10-11T05:54:36.642572+00:00"} GET: /v1/portgroups?sort_key=uuid {} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network [0.125482s] ... ok GOT:{u'portgroups': [{u'address': u'52:54:00:cf:2d:30', u'uuid': u'274c941f-614e-4406-bd53-a9ad0f37d8eb', u'links': [{u'href': u'http://localhost/v1/portgroups/274c941f-614e-4406-bd53-a9ad0f37d8eb', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/274c941f-614e-4406-bd53-a9ad0f37d8eb', u'rel': u'bookmark'}], u'name': u'portgroup0'}, {u'address': u'52:54:00:cf:2d:31', u'uuid': u'a6c31c10-da46-414d-a4b3-bbd3bddb84b0', u'links': [{u'href': u'http://localhost/v1/portgroups/a6c31c10-da46-414d-a4b3-bbd3bddb84b0', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/a6c31c10-da46-414d-a4b3-bbd3bddb84b0', u'rel': u'bookmark'}], u'name': u'portgroup1'}, {u'address': u'52:54:00:cf:2d:32', u'uuid': u'c83b45b7-03cd-42f3-9ddc-24ab2459066c', u'links': [{u'href': u'http://localhost/v1/portgroups/c83b45b7-03cd-42f3-9ddc-24ab2459066c', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/c83b45b7-03cd-42f3-9ddc-24ab2459066c', u'rel': u'bookmark'}], u'name': u'portgroup2'}]} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key [0.106173s] ... ok GOT:{u'ports': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'd61967a8-0903-42ad-9a12-653492ffd8ce', u'links': [{u'href': u'http://localhost/v1/ports/d61967a8-0903-42ad-9a12-653492ffd8ce', u'rel': u'self'}, {u'href': u'http://localhost/ports/d61967a8-0903-42ad-9a12-653492ffd8ce', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.783582+00:00', u'updated_at': None, u'address': u'66:44:55:33:11:22'}]} GET: /v1/volume/connectors/67444b8b-1c44-4fad-acbd-a88015fbd536 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'67444b8b-1c44-4fad-acbd-a88015fbd536', u'links': [{u'href': u'http://localhost/v1/volume/connectors/67444b8b-1c44-4fad-acbd-a88015fbd536', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/67444b8b-1c44-4fad-acbd-a88015fbd536', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.774001+00:00', u'updated_at': None, u'connector_id': u'iqn.2012-06.com.example:initiator', u'type': u'iqn'} GET: /v1/volume/connectors/67444b8b-1c44-4fad-acbd-a88015fbd536 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'67444b8b-1c44-4fad-acbd-a88015fbd536', u'links': [{u'href': u'http://localhost/v1/volume/connectors/67444b8b-1c44-4fad-acbd-a88015fbd536', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/67444b8b-1c44-4fad-acbd-a88015fbd536', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.774001+00:00', u'updated_at': None, u'connector_id': u'iqn.2012-06.com.example:initiator', u'type': u'iqn'} GET: /volume/connectors/67444b8b-1c44-4fad-acbd-a88015fbd536 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'67444b8b-1c44-4fad-acbd-a88015fbd536', u'links': [{u'href': u'http://localhost/v1/volume/connectors/67444b8b-1c44-4fad-acbd-a88015fbd536', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/67444b8b-1c44-4fad-acbd-a88015fbd536', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:36.774001+00:00', u'updated_at': None, u'connector_id': u'iqn.2012-06.com.example:initiator', u'type': u'iqn'} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links [0.098257s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node [0.038848s] ... ok GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} GOT:{u'ports': [{u'uuid': u'02f8e6af-9b74-45c3-9c95-f2e61341b006', u'links': [{u'href': u'http://localhost/v1/ports/02f8e6af-9b74-45c3-9c95-f2e61341b006', u'rel': u'self'}, {u'href': u'http://localhost/ports/02f8e6af-9b74-45c3-9c95-f2e61341b006', u'rel': u'bookmark'}], u'address': u'aa:bb:cc:dd:ee:f1'}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address [0.047127s] ... ok 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-4eba5dd4-8401-485f-a233-0f41b97da5dc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type [0.035251s] ... ok 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-7f8758c7-7bda-4c7f-a476-53b64f379c8d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid [0.051971s] ... ok 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-eb4d2fb5-e6f2-4db0-aa2a-3f9325a70e04 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "created_at": "2019-10-11T05:54:36.852549+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi [0.056181s] ... ok 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-9402a1fb-a115-4072-a2b1-8303bb55c8c0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api [0.045980s] ... ok 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-c4fa2155-3ab3-4d3b-ace5-babab8ebfa70 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Cannot update port \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c781\\\" on \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed [0.089997s] ... ok GET: /v1/ports?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e3515f5d-d7b6-42e8-a72d-6ebe4dcc8a04 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format [0.031225s] ... ok GET: /v1/ports?address=aa:bb:cc:dd:ee:ff {} GOT:{u'ports': []} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address [0.030281s] ... ok GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found [0.022128s] ... 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-bdfc71f3-706a-437b-8bce-37bd48eecabf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:36.907699+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "aa:bb:cc:dd:ee:ff", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root [0.053820s] ... ok 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-c56f8dce-a062-43dc-a658-b395d2870275 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/mode' is a mandatory attribute and can not be removed\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed [0.054868s] ... ok 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-f1bbf4e1-b3ef-47be-ba91-b1e219d363cc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist [0.073539s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'op': 'remove'}] 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-af59620f-f9f5-4bb5-97d7-3d07ca77c9c0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:36.899939+00:00", "updated_at": "2019-10-11T05:54:36.941319+00:00", "address": "aa:bb:cc:dd:ee:ff"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized [0.088894s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] PATCH: /v1/ports/ceb09c72-3b32-433d-a6e2-c9dbc5f33ac6 [{'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-1b5048e3-6543-45b4-becd-c339cc2c53ab X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "ceb09c72-3b32-433d-a6e2-c9dbc5f33ac6", "links": [{"href": "http://localhost/v1/ports/ceb09c72-3b32-433d-a6e2-c9dbc5f33ac6", "rel": "self"}, {"href": "http://localhost/ports/ceb09c72-3b32-433d-a6e2-c9dbc5f33ac6", "rel": "bookmark"}], "extra": {"vif_port_id": "bar"}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:36.984656+00:00", "address": "52:55:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "original"}, "created_at": "2019-10-11T05:54:36.953618+00:00"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_diff_internal [0.064267s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3d3346e3-ac1c-4d49-8fb6-cbb766f00ba9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id [0.048717s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/non-existent', 'op': 'remove'}] 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-7714b220-de05-4009-b655-1ab932cc3834 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "created_at": "2019-10-11T05:54:37.024605+00:00", "updated_at": "2019-10-11T05:54:37.027943+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi [0.090362s] ... ok 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-a1b7e740-067f-4e48-81d5-d84e5a59f639 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "created_at": "2019-10-11T05:54:37.014230+00:00", "updated_at": "2019-10-11T05:54:37.049364+00:00", "address": "52:54:00:cf:2d:31"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi [0.065014s] ... ok 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-48130876-66ca-4455-aa2a-8a1a367b1393 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0306c3b7-0fd9-49f0-8845-11a352a0156d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail [0.049282s] ... ok 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-f2f0e981-92be-4123-ae58-79d6cbb12106 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format [0.033852s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version [0.036285s] ... ok PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] PATCH: /v1/ports/597edbd0-1c94-4ecf-838f-9728f48e27a5 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27d90121-5a1f-4f23-bb82-f3d9dcdab01b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "created_at": "2019-10-11T05:54:36.983718+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed [0.107981s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none [0.014404s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow [0.014201s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow [0.024719s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': 'AA:AA:AA:11:22:33', 'is_smartnic': False} 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, \"description\": \"Expected a logical name or UUID but received 52:54:00:cf:2d:31.\", \"title\": \"Bad Request\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed [0.032787s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b046cad-750f-4643-a1ee-51ded06d2118 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "597edbd0-1c94-4ecf-838f-9728f48e27a5", "links": [{"href": "http://localhost/v1/ports/597edbd0-1c94-4ecf-838f-9728f48e27a5", "rel": "self"}, {"href": "http://localhost/ports/597edbd0-1c94-4ecf-838f-9728f48e27a5", "rel": "bookmark"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:37.150276+00:00", "address": "52:55:00:cf:2d:31", "internal_info": {"foo": "bar"}, "created_at": "2019-10-11T05:54:37.119364+00:00"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_internal [0.072854s] ... ok PATCH: /v1/portgroups/pg.1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}]GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b8fab46f-fffa-4b9e-9240-d311671c3900 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'value': u'1', 'op': 'replace'}'. Reason: can't replace non-existent object 'node_id'\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id [0.062572s] ... ok 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-739b4b57-5995-48fa-b4db-dac19a6a2475 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"foo": "bar"}, "created_at": "2019-10-11T05:54:37.167419+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid [0.055673s] ... ok 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-7c8fcf46-0157-47b0-8ff7-1e081061434d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/address' is a mandatory attribute and can not be removed\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field [0.038803s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}]GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b41d1b1c-952d-4e5a-a1de-c9672b5c6572 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist [0.072007s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0de4620f-8abb-435a-87eb-b04bffaa505e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"foo": "bar"}, "created_at": "2019-10-11T05:54:37.187390+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname [0.061362s] ... ok GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cef18401-3466-4d11-9e4b-c3c5b7c0df4a 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version [0.044117s] ... ok 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, \"description\": \"\", \"title\": \"Not Found\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version [0.037441s] ... ok PATCH: /v1/volume/connectors/e4e2c134-d108-46bf-bf51-fdf0b0df89ae [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f779dc58-7fdf-4dbc-85b4-a7667a2ab77c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Volume connector e4e2c134-d108-46bf-bf51-fdf0b0df89ae could not be found.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found [0.037938s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': 'AA:BB:CC:DD:EE:FF', 'is_smartnic': False} POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator'} 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-511334db-7aaf-4947-a948-b378587df9e9 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade [0.044268s] ... ok 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-ce1682f0-6532-4b28-8e0e-ce660e1031c6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/internal_info' is an internal attribute and can not be updated\"}"} PATCH: /v1/ports/c9a06583-c620-415c-b582-951ab7ef9332 [{'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-10394102-6ad8-4636-ac01-0232d7f092ba X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "c9a06583-c620-415c-b582-951ab7ef9332", "links": [{"href": "http://localhost/v1/ports/c9a06583-c620-415c-b582-951ab7ef9332", "rel": "self"}, {"href": "http://localhost/ports/c9a06583-c620-415c-b582-951ab7ef9332", "rel": "bookmark"}], "extra": {"vif_port_id": "bar"}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": "2019-10-11T05:54:37.353833+00:00", "address": "52:55:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "bar"}, "created_at": "2019-10-11T05:54:37.325944+00:00"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_extra_vif_port_id [0.066247s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed [0.038722s] ... ok 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-0e070ca7-b72d-4b44-8132-19f3411bc9b5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'value': u'1', 'op': 'replace'}'. Reason: can't replace non-existent object 'node_id'\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id [0.051586s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-55a028b2-135f-463f-a982-ddc61b835e86 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "aa:bb:cc:dd:ee:ff", "internal_info": {}, "created_at": "2019-10-11T05:54:37.283756+00:00", "is_smartnic": false} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'local_link_connection': {u'switch_info': u'switch1', u'port_id': u'Ethernet3/1', u'switch_id': u'0a:1b:2c:3d:4e:5f'}, u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'pxe_enabled': True, u'portgroup_uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'updated_at': None, u'physical_network': None, u'address': u'aa:bb:cc:dd:ee:ff', u'internal_info': {}, u'created_at': u'2019-10-11T05:54:37.283756+00:00', u'is_smartnic': False} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized [0.181563s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/3c0e9536-62d0-4d87-9348-f64f6f18ef8e Openstack-Request-Id: req-c2d0116d-339c-431d-a5d6-a4bfb9180e6b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "3c0e9536-62d0-4d87-9348-f64f6f18ef8e", "links": [{"href": "http://localhost/v1/volume/connectors/3c0e9536-62d0-4d87-9348-f64f6f18ef8e", "rel": "self"}, {"href": "http://localhost/volume/connectors/3c0e9536-62d0-4d87-9348-f64f6f18ef8e", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:37.327186+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} GET: /v1/volume/connectors/3c0e9536-62d0-4d87-9348-f64f6f18ef8e {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'3c0e9536-62d0-4d87-9348-f64f6f18ef8e', u'links': [{u'href': u'http://localhost/v1/volume/connectors/3c0e9536-62d0-4d87-9348-f64f6f18ef8e', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/3c0e9536-62d0-4d87-9348-f64f6f18ef8e', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:37.327186+00:00', u'updated_at': None, u'connector_id': u'iqn.2012-06.com.example:initiator', u'type': u'iqn'} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid [0.072034s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': None, 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version [0.023184s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-084bc620-69c8-4b24-ab37-e5d6272f7f24 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:37.452634+00:00", "updated_at": "2019-10-11T05:54:37.491214+00:00", "address": "aa:bb:cc:dd:ee:ff"} 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-500ec573-e409-4a49-ac25-4cf3eb423430 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:37.291907+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "802.3ad", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {"bond_param": "100"}, "name": "pg.1"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties [0.066568s] ... ok DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-44071940-6f9e-4b5b-b115-de0e475c753f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid [0.053040s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular [0.085925s] ... ok 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-035fab11-8cbd-4186-8ffe-2008b1dda65d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"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.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed [0.045915s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-196efa9a-5392-4523-9643-29b9647dcf9d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": null, "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:37.517019+00:00", "is_smartnic": false} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_cannot_send_create_port [0.175518s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GET: /v1/volume/targets/?limit=3 {} GOT:{u'targets': [{u'boot_index': 0, u'uuid': u'0f8bece3-b0bd-437e-92f8-c78d7ae159ff', u'links': [{u'href': u'http://localhost/v1/volume/targets/0f8bece3-b0bd-437e-92f8-c78d7ae159ff', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/0f8bece3-b0bd-437e-92f8-c78d7ae159ff', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 1, u'uuid': u'583f5994-056b-4b39-9147-e7093234477f', u'links': [{u'href': u'http://localhost/v1/volume/targets/583f5994-056b-4b39-9147-e7093234477f', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/583f5994-056b-4b39-9147-e7093234477f', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 2, u'uuid': u'a93e43b1-d57a-48c0-9900-9f40d185613a', u'links': [{u'href': u'http://localhost/v1/volume/targets/a93e43b1-d57a-48c0-9900-9f40d185613a', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/a93e43b1-d57a-48c0-9900-9f40d185613a', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}], u'next': u'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=a93e43b1-d57a-48c0-9900-9f40d185613a'} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links [0.069636s] ... ok GET: /v1/volume/targets?detail=True {} GOT:{u'targets': [{u'boot_index': 0, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:37.532537+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail [0.060740s] ... ok GET: /v1/volume/targets?detail=False {} GOT:{u'targets': [{u'boot_index': 0, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false [0.044407s] ... ok 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-d711e516-aac3-460e-8b73-ef31ad23a507 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:37.348976+00:00", "updated_at": null, "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"}], "standalone_ports_supported": false, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} GET: /v1/volume/targets {} GOT:{u'targets': []} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty [0.043271s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4141be0d-34cd-4e3b-90e7-ce79b3af8bdd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"foo": "bar"}, "created_at": "2019-10-11T05:54:37.575130+00:00", "updated_at": "2019-10-11T05:54:37.607799+00:00", "address": "52:54:00:cf:2d:31"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid [0.069744s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty [0.011798s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow [0.029460s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow [0.014542s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': 'invalid-format', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0347f315-84ff-417f-9e11-0d24b01ab881 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received invalid-format.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format [0.035972s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': 'invalid-format', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-15559dc9-4dd0-4cd2-9855-810504829ae9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format [0.102957s] ... ok GET: /v1/volume/targets?fields=boot_index&limit=2 {} GOT:{u'targets': [{u'boot_index': 0, u'links': [{u'href': u'http://localhost/v1/volume/targets/77f03080-c9c6-4c51-8319-fee5e8ab0b64', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/77f03080-c9c6-4c51-8319-fee5e8ab0b64', u'rel': u'bookmark'}]}, {u'boot_index': 1, u'links': [{u'href': u'http://localhost/v1/volume/targets/4ea19908-e3b2-4b4d-a2b7-a41f74f5cc4d', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/4ea19908-e3b2-4b4d-a2b7-a41f74f5cc4d', u'rel': u'bookmark'}]}], u'next': u'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=2&marker=4ea19908-e3b2-4b4d-a2b7-a41f74f5cc4d'} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid [0.060813s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported [0.054343s] ... ok POST: /v1/ports {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31'} POST: /v1/ports {'local_link_connection': {'switch_info': 'fooswitch', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f23bb49b-02ae-40d8-8d48-ef26899166ed X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys. Required keys are set(['port_id', 'switch_id']). Or in case of Smart NIC set(['hostname', 'port_id']). Submitted keys are set(['switch_info', 'switch_id']) .\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory [0.133612s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c06e03ee-3482-48c2-ac90-86373057ec54 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"vif_port_id": "bar"}, "created_at": "2019-10-11T05:54:37.403825+00:00", "updated_at": "2019-10-11T05:54:37.439751+00:00", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "original"}, "properties": {}, "name": "fooname"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_diff_internal [0.065189s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-4c079a49-a9ea-49b8-9819-34860908ba35 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:37.769578+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version [0.067734s] ... ok 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-de54fbe4-8a3e-4d9d-bce8-243d71abe9db X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "created_at": "2019-10-11T05:54:37.727360+00:00", "updated_at": null, "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi [0.057429s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5dc04efc-5ece-402a-b7a8-dcb5deca6987 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid [0.035280s] ... ok 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-51d1a0bb-4cef-481f-b83f-172de1790556 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist [0.058535s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-f6be59b5-b2c8-4ce5-bd09-3e7de83e03c2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:37.486248+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {}, "properties": {}, "name": "fooname"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode [0.047516s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'internal_info': 'info', 'name': 'fooname'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2b859305-e9c2-40f8-95b5-3271a2b5e9df X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute portgroup. Value: '{'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'internal_info': 'info', 'name': 'fooname'}'. Value not a valid dict: info\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed [0.044577s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'is_smartnic': False} 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-fe386682-3170-473a-8acd-6dec907a15ab X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type [0.031233s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ea2a50cd-9e13-4fe1-8c8e-89fc13cc44e1 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version [0.032606s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8d00d0ce-6b85-482e-bfe7-93a65fae8fb2 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version [0.062408s] ... ok POST: /v1/ports {'local_link_connection': {'switch_foo': 'value3', 'port_id': 'Ethernet1/15', 'switch_id': 'value1'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} 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-e090dbd9-690a-458a-9cbc-c3bee5f2bd0d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"foo": "bar"}, "created_at": "2019-10-11T05:54:37.877661+00:00", "updated_at": null, "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9fd117fe-bcff-4aa2-8622-4655358972c2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'None'. Mandatory field missing.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address [0.112252s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-01f211f3-5dbb-4ab5-a263-f063b567830e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"set(['switch_foo']) are invalid keys\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key [0.070577s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid [0.057561s] ... ok POST: /v1/volume/targets {'boot_index': 0, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'volume_type': 'iscsi', 'node_uuid': 123, 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-50cd328a-54f4-463d-b160-05ef6b11bc4e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format [0.029388s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': False, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'address': '52:54:00:cf:2d:31', 'properties': {'bond_prop': 123}, 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-ac32d0db-6ff6-4f19-b4a3-abd9008edae1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:37.611805+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "802.3ad", "address": "52:54:00:cf:2d:31", "internal_info": {}, "properties": {"bond_prop": 123}, "name": "fooname"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties [0.047799s] ... ok POST: /v1/portgroups {'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8358a2ad-64cd-4d50-b979-85d2ba7f4f7b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found [0.035014s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52-54-00-cf-2d-31', 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ca286333-6c30-47f3-aca9-dda4cbb2f6cc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 52-54-00-cf-2d-31.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter [0.048189s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {'none': None, 'int': 123, 'float': 0.1, 'list': [1, 2], 'bool': True, 'str': 'foo', 'dict': {'cat': 'meow'}}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-5271a9e7-952b-4949-9ba4-b0124ea5cbc1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"none": null, "int": 123, "float": 0.1, "list": [1, 2], "dict": {"cat": "meow"}, "str": "foo", "bool": true}, "created_at": "2019-10-11T05:54:37.700754+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {}, "properties": {}, "name": "fooname"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {u'none': None, u'int': 123, u'float': 0.1, u'list': [1, 2], u'bool': True, u'str': u'foo', u'dict': {u'cat': u'meow'}}, u'created_at': u'2019-10-11T05:54:37.700754+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra [0.064706s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-d56c6213-6e0c-4aeb-a655-4e17ce0bb5d6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": false, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:38.006690+00:00", "is_smartnic": false} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports [0.127653s] ... ok POST: /v1/volume/targets {'boot_index': 0, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'none': None, 'int': 123, 'float': 0.1, 'list': [1, 2], 'bool': True, 'str': 'foo', 'dict': {'cat': 'meow'}}, 'volume_type': 'iscsi', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-bfe5d141-f38c-4d55-9201-776c192e0594 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"none": null, "int": 123, "float": 0.1, "list": [1, 2], "dict": {"cat": "meow"}, "str": "foo", "bool": true}, "created_at": "2019-10-11T05:54:38.000172+00:00", "updated_at": null, "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'boot_index': 0, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {u'none': None, u'int': 123, u'float': 0.1, u'list': [1, 2], u'bool': True, u'str': u'foo', u'dict': {u'cat': u'meow'}}, u'created_at': u'2019-10-11T05:54:38.000172+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra [0.084566s] ... ok 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": {"message": "The request you have made requires authentication.", "code": 401, "title": "Unauthorized"}} {2} ironic.tests.unit.api.test_acl.TestACL.test_non_authenticated [0.029585s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {'vif_port_id': 'foo'}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-2d6cb4c1-c8c4-4075-bb2d-bfd6bbae9e86 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"vif_port_id": "foo"}, "created_at": "2019-10-11T05:54:37.759885+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "foo"}, "properties": {}, "name": "fooname"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id [0.045700s] ... ok POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-63449507-1bba-44f4-9e97-838b62a57eb0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok [0.060271s] ... ok 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-181e6bae-b2a6-4218-9a89-c52f7822223e 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\"}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error [0.034124s] ... ok GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9 {} GOT:{u'node': {u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'uuid': u'2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9', u'driver_internal_info': {u'private_state': u'secret value'}, u'links': [{u'href': u'http://localhost/v1/nodes/2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9', u'rel': u'self'}, {u'href': u'http://localhost/nodes/2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9', u'rel': u'bookmark'}], u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}}, u'config': {u'metrics': {u'prepend_host': False, u'prepend_uuid': False, u'backend': u'statsd', u'prepend_host_reverse': True, u'global_prefix': None}, u'heartbeat_timeout': 300, u'metrics_statsd': {u'statsd_port': 8125, u'statsd_host': u'localhost'}}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9 {} GOT:{u'node': {u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'uuid': u'2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9', u'driver_internal_info': {u'private_state': u'secret value'}, u'links': [{u'href': u'http://localhost/v1/nodes/2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9', u'rel': u'self'}, {u'href': u'http://localhost/nodes/2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9', u'rel': u'bookmark'}], u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}}, u'config': {u'metrics': {u'prepend_host': False, u'prepend_uuid': False, u'backend': u'statsd', u'prepend_host_reverse': True, u'global_prefix': None}, u'heartbeat_timeout': 300, u'metrics_statsd': {u'statsd_port': 8125, u'statsd_host': u'localhost'}}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9 {} GOT:{u'node': {u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'uuid': u'2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9', u'driver_internal_info': {u'private_state': u'secret value'}, u'links': [{u'href': u'http://localhost/v1/nodes/2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9', u'rel': u'self'}, {u'href': u'http://localhost/nodes/2b0bcf72-186e-4c00-80ae-baf6b6ed4aa9', u'rel': u'bookmark'}], u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}}, u'config': {u'metrics': {u'prepend_host': False, u'prepend_uuid': False, u'backend': u'statsd', u'prepend_host_reverse': True, u'global_prefix': None}, u'heartbeat_timeout': 300, u'metrics_statsd': {u'statsd_port': 8125, u'statsd_host': u'localhost'}}} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup [0.104520s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'internal_info': {'a': 'b'}, 'is_smartnic': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9ce1108c-6663-45fe-8c46-4fdc9e323b18 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute internal_info. Value: '{u'a': u'b'}'. Cannot set read only field.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field [0.034505s] ... ok GET: /v1/lookup?node_uuid=5e82909b-3829-4ec6-877e-37c905f210cb {} GOT:{u'node': {u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'uuid': u'5e82909b-3829-4ec6-877e-37c905f210cb', u'driver_internal_info': {u'private_state': u'secret value'}, u'links': [{u'href': u'http://localhost/v1/nodes/5e82909b-3829-4ec6-877e-37c905f210cb', u'rel': u'self'}, {u'href': u'http://localhost/nodes/5e82909b-3829-4ec6-877e-37c905f210cb', u'rel': u'bookmark'}], u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}}, u'config': {u'metrics': {u'prepend_host': False, u'prepend_uuid': False, u'backend': u'statsd', u'prepend_host_reverse': True, u'global_prefix': None}, u'heartbeat_timeout': 300, u'metrics_statsd': {u'statsd_port': 8125, u'statsd_host': u'localhost'}}} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid [0.069816s] ... ok GET: /v1.xml {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} GET: /v1/ {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9867fc43-a0f1-4129-8489-45a4c96fe29c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "version": {"status": "CURRENT", "min_version": "1.1", "version": "1.58", "id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}]}, "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "type": "text/html", "rel": "describedby"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "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"}], "id": "v1"} GET: /v1.json {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-781bbfe0-68c4-4211-9d32-72b1ff77dfc3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "version": {"status": "CURRENT", "min_version": "1.1", "version": "1.58", "id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}]}, "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "type": "text/html", "rel": "describedby"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "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"}], "id": "v1"} {2} ironic.tests.unit.api.test_acl.TestACL.test_public_api_with_path_extensions [0.051642s] ... ok {2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request [0.026334s] ... ok GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context [0.027496s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed [0.014453s] ... ok GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f0e5f524-b066-480c-b7df-305aa1e7c80c {"error_message": "{\"debuginfo\":null,\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\"}"} {2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault [0.026159s] ... ok {2} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url [0.017062s] ... ok {2} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint [0.034104s] ... ok {2} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request [0.021281s] ... ok GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=c0685d71-d82b-454f-ae5a-0adadbf020bb {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bb48340f-9293-4981-9748-9f41b566862a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup [0.056856s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_invalid_mac_network_port_event [0.007872s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr [0.027325s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op [0.009011s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches [0.009993s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_valid_values [0.007558s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type [0.007156s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_datapath_id [0.024038s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_hostname_missing [0.007634s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_with_optional [0.007223s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr [0.019926s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_invalid_uuid_or_name [0.027655s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid [0.007462s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type [0.006956s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_optional_key [0.017069s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success [0.012044s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath [0.007412s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-3abb3b5d-8d4f-48f4-8eb8-c873d352bac8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:38.159706+00:00", "is_smartnic": false} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup [0.161984s] ... ok {2} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request [0.042408s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success [0.007559s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates [0.007664s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers [0.007834s] ... ok {2} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request [0.020497s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9edbb802-af85-4fc5-bf56-f202ae62e77f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version [0.105964s] ... ok GET: / {} GOT:{u'default_version': {u'status': u'CURRENT', u'min_version': u'1.1', u'version': u'1.58', u'id': u'v1', u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}]}, u'description': u'Ironic is an OpenStack project which aims to provision baremetal machines.', u'name': u'OpenStack Ironic API', u'versions': [{u'status': u'CURRENT', u'min_version': u'1.1', u'version': u'1.58', u'id': u'v1', u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}]}]} {2} ironic.tests.unit.api.test_root.TestRoot.test_get_root [0.032010s] ... ok GET: /v1/foo {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {2} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors [0.019916s] ... ok DELETE: /v1/v1 GOT:Response: 405 Method Not Allowed Allow: GET Content-Type: application/json {"error_message": "{\"code\": 405, \"description\": \"\", \"title\": \"Method Not Allowed\"}"} {2} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 [0.015675s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info [0.008586s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin [0.008273s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface [0.007839s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface [0.007988s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume [0.007775s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail [0.008518s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs [0.008081s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail [0.024530s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'vif_port_id': 'cd34d674-3309-4a61-94b8-16fdd0f28ee4'}, 'pxe_enabled': False, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': True} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b835a8f9-b493-481f-883c-a92b32eeba69 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} GET: /v1/ {} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version [0.041060s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-66227713-767e-4457-85ce-c34d027e71c2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {"vif_port_id": "cd34d674-3309-4a61-94b8-16fdd0f28ee4"}, "pxe_enabled": false, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "cd34d674-3309-4a61-94b8-16fdd0f28ee4"}, "created_at": "2019-10-11T05:54:38.396195+00:00", "is_smartnic": false} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports [0.119571s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict [0.038509s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false [0.008087s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none [0.007932s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'vif_port_id': '0cc4f79e-280e-4b4c-bfee-f837978c1bf9'}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-08bcae5d-3b50-4fe0-a338-93ceba477a60 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports [0.062914s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': 'physnet1', 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-aa7627ee-c45a-49ea-8cc0-4c0510ec871b 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version [0.053022s] ... ok DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 204 No Content Openstack-Request-Id: req-99bc7ad5-2416-4ebe-bd9d-0a6aa9253884 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid [0.042670s] ... ok DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version [0.025801s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type [0.025499s] ... ok GOT:{u'media_types': [{u'base': u'application/json', u'type': u'application/vnd.openstack.ironic.v1+json'}], u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}, {u'href': u'https://docs.openstack.org//ironic/latest/contributor//webapi.html', u'type': u'text/html', u'rel': u'describedby'}], u'drivers': [{u'href': u'http://localhost/v1/drivers/', u'rel': u'self'}, {u'href': u'http://localhost/drivers/', u'rel': u'bookmark'}], u'id': u'v1', u'version': {u'status': u'CURRENT', u'min_version': u'1.1', u'version': u'1.58', u'id': u'v1', u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}]}, u'lookup': [{u'href': u'http://localhost/v1/lookup/', u'rel': u'self'}, {u'href': u'http://localhost/lookup/', u'rel': u'bookmark'}], u'heartbeat': [{u'href': u'http://localhost/v1/heartbeat/', u'rel': u'self'}, {u'href': u'http://localhost/heartbeat/', u'rel': u'bookmark'}], u'nodes': [{u'href': u'http://localhost/v1/nodes/', u'rel': u'self'}, {u'href': u'http://localhost/nodes/', u'rel': u'bookmark'}], u'ports': [{u'href': u'http://localhost/v1/ports/', u'rel': u'self'}, {u'href': u'http://localhost/ports/', u'rel': u'bookmark'}], u'chassis': [{u'href': u'http://localhost/v1/chassis/', u'rel': u'self'}, {u'href': u'http://localhost/chassis/', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail [0.010133s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail [0.008226s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail [0.009799s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class [0.007668s] ... ok GET: /v1/portgroups/detail {} GOT:{u'portgroups': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:38.215279+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'}]} {2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root [0.051594s] ... ok GET: /v1/ {} GOT:{u'media_types': [{u'base': u'application/json', u'type': u'application/vnd.openstack.ironic.v1+json'}], u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}, {u'href': u'https://docs.openstack.org//ironic/latest/contributor//webapi.html', u'type': u'text/html', u'rel': u'describedby'}], u'drivers': [{u'href': u'http://localhost/v1/drivers/', u'rel': u'self'}, {u'href': u'http://localhost/drivers/', u'rel': u'bookmark'}], u'id': u'v1', u'version': {u'status': u'CURRENT', u'min_version': u'1.1', u'version': u'1.58', u'id': u'v1', u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}]}, u'nodes': [{u'href': u'http://localhost/v1/nodes/', u'rel': u'self'}, {u'href': u'http://localhost/nodes/', u'rel': u'bookmark'}], u'ports': [{u'href': u'http://localhost/v1/ports/', u'rel': u'self'}, {u'href': u'http://localhost/ports/', u'rel': u'bookmark'}], u'chassis': [{u'href': u'http://localhost/v1/chassis/', u'rel': u'self'}, {u'href': u'http://localhost/chassis/', u'rel': u'bookmark'}]} {2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root [0.034249s] ... ok func1() migrated 10 of 15 objects. {2} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone [0.015054s] ... ok func1() migrated 10 of 10 objects. func1() migrated 0 of 0 objects. func2() migrated 0 of 0 objects. {2} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done [0.013452s] ... ok Malformed option m1.key1value1 {2} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 [0.012063s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail [0.040843s] ... ok GET: /v1/portgroups/detail {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version [0.024577s] ... ok GET: /v1/portgroups/detail?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-65af7c7d-94fb-4cd1-84e3-fed8cebb277a 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed [0.028338s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail [0.011221s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties [0.007757s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail [0.008875s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name [0.008632s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden [0.009197s] ... ok GET: /v1/portgroups?detail=False&fields=internal_info {} GOT:{u'portgroups': [{u'internal_info': {u'bar': u'buzz'}, u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}]}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields [0.040912s] ... ok Running batches of 50 until migrations have been completed. Data migrations have completed. {2} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options [0.056648s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync [0.018890s] ... ok GET: /v1/portgroups?node=test-node {} GOT:{u'portgroups': [{u'address': u'52:54:00:cf:2d:30', u'uuid': u'54f9aae8-d418-412b-9d41-35659799ac93', u'links': [{u'href': u'http://localhost/v1/portgroups/54f9aae8-d418-412b-9d41-35659799ac93', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/54f9aae8-d418-412b-9d41-35659799ac93', u'rel': u'bookmark'}], u'name': u'portgroup0'}, {u'address': u'52:54:00:cf:2d:31', u'uuid': u'311e0610-b311-4191-9430-4ec662559182', u'links': [{u'href': u'http://localhost/v1/portgroups/311e0610-b311-4191-9430-4ec662559182', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/311e0610-b311-4191-9430-4ec662559182', u'rel': u'bookmark'}], u'name': u'portgroup1'}, {u'address': u'52:54:00:cf:2d:32', u'uuid': u'ae02993c-0ac8-409c-b5e5-7f8db3ac2d52', u'links': [{u'href': u'http://localhost/v1/portgroups/ae02993c-0ac8-409c-b5e5-7f8db3ac2d52', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/ae02993c-0ac8-409c-b5e5-7f8db3ac2d52', u'rel': u'bookmark'}], u'name': u'portgroup2'}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok [0.060895s] ... ok POST: /v1/ports {'local_link_connection': {'hostname': 'host1', 'port_id': 'rep0-0'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': True} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-c53cf6f6-a26c-4b33-afc5-a3382190a0b8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"hostname": "host1", "port_id": "rep0-0"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:38.546162+00:00", "is_smartnic": true} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic [0.087516s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. GET: /v1/portgroups?fields=uuid,extra {} GOT:{u'portgroups': [{u'uuid': u'c425a811-91dd-451c-b0dc-e3cc8a321213', u'links': [{u'href': u'http://localhost/v1/portgroups/c425a811-91dd-451c-b0dc-e3cc8a321213', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/c425a811-91dd-451c-b0dc-e3cc8a321213', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'3988024a-1dcf-4514-8554-a426cd8c9016', u'links': [{u'href': u'http://localhost/v1/portgroups/3988024a-1dcf-4514-8554-a426cd8c9016', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/3988024a-1dcf-4514-8554-a426cd8c9016', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'6e388291-18e7-462b-935d-71a9068a96c3', u'links': [{u'href': u'http://localhost/v1/portgroups/6e388291-18e7-462b-935d-71a9068a96c3', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6e388291-18e7-462b-935d-71a9068a96c3', u'rel': u'bookmark'}], u'extra': {}}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields [0.059846s] ... ok GET: /v1/portgroups?fields=address&limit=2 {} GOT:{u'portgroups': [{u'links': [{u'href': u'http://localhost/v1/portgroups/db7a90e9-068c-4a49-88d2-ad1d5e937573', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/db7a90e9-068c-4a49-88d2-ad1d5e937573', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:30'}, {u'links': [{u'href': u'http://localhost/v1/portgroups/284c4501-9303-46b4-adcd-770fbb14f45a', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/284c4501-9303-46b4-adcd-770fbb14f45a', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}], u'next': u'http://localhost/v1/portgroups?sort_dir=asc&sort_key=id&limit=2&marker=284c4501-9303-46b4-adcd-770fbb14f45a'} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid [0.053537s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified [0.023375s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte [0.008868s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte [0.008384s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync [0.008338s] ... ok POST: /v1/ports {'local_link_connection': {'port_id': 'Ethernet1/15', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3d0e31d6-e581-4fc3-a13b-96f95a100916 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version [0.053048s] ... ok GET: /v1/volume/ {} {2} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad [0.021369s] ... ok {2} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models [0.013828s] ... ok {2} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions_bad [0.032500s] ... ok GET: /v1/portgroups {} GOT:{u'portgroups': [{u'address': u'52:54:00:cf:2d:31', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'name': u'fooname'}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one [0.039807s] ... ok POST: /v1/ports {'local_link_connection': {'switch_info': 'switch1', 'port_id': 'Ethernet3/1', 'switch_id': '0a:1b:2c:3d:4e:5f'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'pxe_enabled': True, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'physical_network': None, 'address': '52:54:00:cf:2d:31', 'is_smartnic': False} GET: /v1/portgroups?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f47f4976-dc1d-4e9f-a718-3c65132013ed X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\"}"} GET: /v1/portgroups?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fac8efd5-1e4f-4fa5-84d7-cbbfd45125be X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\"}"} GET: /v1/portgroups?sort_key=internal_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f2ca992e-911c-4790-8616-6ed86d6fa961 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\"}"} GET: /v1/portgroups?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4c2991ac-f336-4318-b5c2-ee1ab0410b7d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid [0.038547s] ... ok GOT:{u'connectors': [{u'href': u'http://localhost/v1/volume/connectors', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors', u'rel': u'bookmark'}], u'targets': [{u'href': u'http://localhost/v1/volume/targets', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets', u'rel': u'bookmark'}], u'links': [{u'href': u'http://localhost/v1/volume/', u'rel': u'self'}, {u'href': u'http://localhost/volume/', u'rel': u'bookmark'}]} GET: /v1/volume/ {} GOT:{u'connectors': [{u'href': u'http://localhost/v1/volume/connectors', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors', u'rel': u'bookmark'}], u'targets': [{u'href': u'http://localhost/v1/volume/targets', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets', u'rel': u'bookmark'}], u'links': [{u'href': u'http://localhost/v1/volume/', u'rel': u'self'}, {u'href': u'http://localhost/volume/', u'rel': u'bookmark'}]} GET: /volume/ {} GOT:{u'connectors': [{u'href': u'http://localhost/v1/volume/connectors', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors', u'rel': u'bookmark'}], u'targets': [{u'href': u'http://localhost/v1/volume/targets', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets', u'rel': u'bookmark'}], u'links': [{u'href': u'http://localhost/v1/volume/', u'rel': u'self'}, {u'href': u'http://localhost/volume/', u'rel': u'bookmark'}]} GET: /v1/volume/connectors {} GOT:{u'connectors': []} GET: /volume/connectors {} GOT:{u'connectors': []} GET: /v1/volume/targets {} GOT:{u'targets': []} GET: /volume/targets {} GOT:{u'targets': []} {3} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume [0.091436s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-5528dee0-93e1-4e5e-8d06-87deb31666a8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"local_link_connection": {"switch_info": "switch1", "port_id": "Ethernet3/1", "switch_id": "0a:1b:2c:3d:4e:5f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "extra": {}, "pxe_enabled": true, "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "updated_at": null, "physical_network": null, "address": "52:54:00:cf:2d:31", "internal_info": {}, "created_at": "2019-10-11T05:54:38.684083+00:00", "is_smartnic": false} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping [0.086229s] ... ok DELETE: /v1/portgroups/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4e129b5a-89d1-4737-b522-85641512be46 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed [0.040536s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2fdf665f-6686-487f-8bfa-90a7ba433fd3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:38.606044+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": null, "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address [0.059653s] ... ok 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-1b899730-5047-4c89-bf22-260dfd7ca49b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist [0.046479s] ... ok GET: /v1/volume/connectors?detail=True {} GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:38.764145+00:00', u'updated_at': None, u'connector_id': u'iqn.2012-06.com.example:initiator', u'type': u'iqn'}]} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail [0.046523s] ... ok {2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes [0.108713s] ... ok GET: /v1/portgroups/?limit=3 {} 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-de4fd5ce-9a84-4c29-9efb-747c7ff7f1c8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "created_at": "2019-10-11T05:54:38.710211+00:00", "updated_at": "2019-10-11T05:54:38.713603+00:00", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi [0.060920s] ... ok GET: /v1/volume/connectors?detail=False {} GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'connector_id': u'iqn.2012-06.com.example:initiator'}]} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false [0.049825s] ... ok 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-1d9576c6-49fa-45f0-9869-504e5da57100 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:38.770952+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid [0.053371s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version [0.023819s] ... ok 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, \"description\": \"\", \"title\": \"Not Found\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version [0.027884s] ... ok PATCH: /v1/portgroups/pg.1.json [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] {2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure [0.089420s] ... ok GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=connector_id,extra {} GOT:{u'connector_id': u'iqn.2012-06.com.example:initiator', u'links': [{u'href': u'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}} GOT:{u'portgroups': [{u'address': u'52:54:00:cf:2d:30', u'uuid': u'7a5b5c97-12a8-437b-b356-3b2a434b2898', u'links': [{u'href': u'http://localhost/v1/portgroups/7a5b5c97-12a8-437b-b356-3b2a434b2898', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/7a5b5c97-12a8-437b-b356-3b2a434b2898', u'rel': u'bookmark'}], u'name': u'portgroup0'}, {u'address': u'52:54:00:cf:2d:31', u'uuid': u'b94f673e-0c16-443a-800d-433a7d3dd2be', u'links': [{u'href': u'http://localhost/v1/portgroups/b94f673e-0c16-443a-800d-433a7d3dd2be', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/b94f673e-0c16-443a-800d-433a7d3dd2be', u'rel': u'bookmark'}], u'name': u'portgroup1'}, {u'address': u'52:54:00:cf:2d:32', u'uuid': u'c1a96a2b-22f3-48d4-95dd-b1089357e772', u'links': [{u'href': u'http://localhost/v1/portgroups/c1a96a2b-22f3-48d4-95dd-b1089357e772', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/c1a96a2b-22f3-48d4-95dd-b1089357e772', u'rel': u'bookmark'}], u'name': u'portgroup2'}], u'next': u'http://localhost/v1/portgroups?sort_dir=asc&sort_key=id&limit=3&marker=c1a96a2b-22f3-48d4-95dd-b1089357e772'} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links [0.085682s] ... ok GET: /v1/portgroups/detail?node=test-node {} GOT:{u'portgroups': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:38.864121+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok [0.057583s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields [0.050479s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f8ec66e9-ecbc-49f7-801d-00b49cce99c4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"foo": "bar"}, "created_at": "2019-10-11T05:54:38.848635+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json [0.053444s] ... ok {2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached [0.064169s] ... ok GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version [0.024486s] ... ok GET: /v1/volume/connectors {} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'value': '802.3ad', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f9c00178-677d-4f5b-a0c2-1533a922559f 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/properties/abc', 'value': 123, 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-187b9953-bdc2-4a86-9050-ed83fa86a9cd 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} GET: /v1/portgroups?detail=True {} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version [0.068257s] ... ok {2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found [0.054077s] ... ok 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, \"description\": \"\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version [0.037472s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context [0.015814s] ... ok GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'connector_id': u'iqn.2012-06.com.example:initiator'}]} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one [0.052081s] ... ok 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'}] {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context [0.009045s] ... ok GOT:{u'portgroups': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:38.911382+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query [0.046615s] ... ok GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:{u'ports': [{u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'address': u'52:54:00:cf:2d:31'}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid [0.055675s] ... ok {2} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set [0.023297s] ... ok {2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer [0.012185s] ... ok {2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername [0.011489s] ... ok {2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config [0.012958s] ... ok {2} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry [0.012196s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b1da3693-f746-469c-af4f-49bd249873fb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "created_at": "2019-10-11T05:54:39.009222+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi [0.062579s] ... 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-0fa5926a-56fc-4311-aca5-83d891197dd0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\"}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.013490+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one [0.044608s] ... ok GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version [0.026143s] ... ok GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.084359+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'pg.json'} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name [0.044046s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] {2} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported [0.015510s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid [0.056564s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe3e3138-c998-4aaa-b22f-66f3eb7763b8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"vif_port_id": "bar"}, "created_at": "2019-10-11T05:54:39.012155+00:00", "updated_at": "2019-10-11T05:54:39.053286+00:00", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "bar", "bar": "buzz"}, "properties": {}, "name": "fooname"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_deprecated [0.082138s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default [0.045547s] ... ok POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1b84c94c-ef3a-4a2a-9ffe-f9127d2a9290 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error [0.052333s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect [0.048382s] ... ok POST: /v1/volume/connectors {'node_uuid': 123, 'extra': {}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1d2029ae-40d8-4bbd-8903-93c7e5aa54c3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format [0.030081s] ... ok 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-02ccc089-b6ae-4943-aab3-a799f5c04e4f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:39.091017+00:00", "updated_at": "2019-10-11T05:54:39.149114+00:00", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "fooname"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id [0.087353s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781'} {2} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task [0.050351s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0469744c-9c2e-4b52-aa04-d940af8683dd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_id. Value: 'None'. Mandatory field missing.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id [0.040758s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-328d2238-1e6c-4850-a794-d268c9dc82df X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:39.188086+00:00", "updated_at": "2019-10-11T05:54:39.222963+00:00", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "fooname"} GET: /v1/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'9a655759-2ee0-4d6d-916f-5aac698a081c', u'links': [{u'href': u'http://localhost/v1/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.128728+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c/ports', u'rel': u'bookmark'}], u'name': u'fooname'} GET: /v1/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'9a655759-2ee0-4d6d-916f-5aac698a081c', u'links': [{u'href': u'http://localhost/v1/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.128728+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c/ports', u'rel': u'bookmark'}], u'name': u'fooname'} GET: /portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'9a655759-2ee0-4d6d-916f-5aac698a081c', u'links': [{u'href': u'http://localhost/v1/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.128728+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {u'bar': u'buzz'}, u'ports': [{u'href': u'http://localhost/v1/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/9a655759-2ee0-4d6d-916f-5aac698a081c/ports', u'rel': u'bookmark'}], u'name': u'fooname'} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links [0.072073s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal [0.076254s] ... ok POST: /v1/volume/connectors {'extra': {}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-40fb3be3-6021-49af-ab12-21986e51a51e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid [0.043750s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] POST: /v1/volume/connectors {'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'extra': {}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} {2} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat [0.049067s] ... ok GET: /v1/portgroups?address=aa:bb:cc:dd:ee:f1 {} GOT:{u'portgroups': [{u'address': u'aa:bb:cc:dd:ee:f1', u'uuid': u'560deacb-8b9e-42d4-a4c5-82e431ab7027', u'links': [{u'href': u'http://localhost/v1/portgroups/560deacb-8b9e-42d4-a4c5-82e431ab7027', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/560deacb-8b9e-42d4-a4c5-82e431ab7027', u'rel': u'bookmark'}], u'name': u'portgroup1'}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address [0.054447s] ... ok GET: /v1/portgroups/e2de9515-c82d-48b5-bfd0-bbf7f38d12a0/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed [0.050654s] ... ok {2} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface [0.042221s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7aea91d9-a8d2-48e3-8695-131d1469cc49 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"vif_port_id": "bar"}, "created_at": "2019-10-11T05:54:39.261763+00:00", "updated_at": "2019-10-11T05:54:39.306636+00:00", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "bar"}, "properties": {}, "name": "fooname"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_replace_extra_vif_port_id [0.080881s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ebbecf5d-e4f2-436e-897a-c98e6aac06a5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found [0.049328s] ... ok GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4f9b713a-9e48-4241-80d6-cdcfe9fb53ea X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found [0.041756s] ... ok {2} ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task [0.047856s] ... ok {2} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported [0.008833s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': 'AA:AA:AA:11:22:33', 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-1d69df0c-978b-4d67-96bd-a1fcf8502776 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:39.363123+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "aa:aa:aa:11:22:33", "internal_info": {}, "properties": {}, "name": "fooname"} POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': 'dcc32bc9-2c8e-480a-9e70-7d20d6e569e7', 'extra': {}, 'standalone_ports_supported': True, 'address': 'AA:AA:AA:11:22:33', 'name': '68ff3935-f327-4334-9f9c-67a9253ad3b9'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c505a0a3-dfdf-48e7-8520-58fbed175fc6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist [0.072657s] ... ok {2} ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state [0.018916s] ... ok {2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth [0.015347s] ... ok GET: /v1/portgroups?sort_key=mode {} GOT:{u'portgroups': [{u'address': u'52:54:00:cf:2d:31', u'uuid': u'435b2a02-3a51-4244-913c-172f02549d21', u'links': [{u'href': u'http://localhost/v1/portgroups/435b2a02-3a51-4244-913c-172f02549d21', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/435b2a02-3a51-4244-913c-172f02549d21', u'rel': u'bookmark'}], u'name': u'portgroup1'}, {u'address': u'52:54:00:cf:2d:32', u'uuid': u'd74865ce-5711-460b-b9ad-57cdb12d1530', u'links': [{u'href': u'http://localhost/v1/portgroups/d74865ce-5711-460b-b9ad-57cdb12d1530', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/d74865ce-5711-460b-b9ad-57cdb12d1530', u'rel': u'bookmark'}], u'name': u'portgroup2'}, {u'address': u'52:54:00:cf:2d:33', u'uuid': u'3e315345-3430-4ec4-88ee-5ab910bc5d7e', u'links': [{u'href': u'http://localhost/v1/portgroups/3e315345-3430-4ec4-88ee-5ab910bc5d7e', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/3e315345-3430-4ec4-88ee-5ab910bc5d7e', u'rel': u'bookmark'}], u'name': u'portgroup3'}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed [0.072918s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} {2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth [0.017674s] ... ok POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {'none': None, 'int': 123, 'float': 0.1, 'list': [1, 2], 'bool': True, 'str': 'foo', 'dict': {'cat': 'meow'}}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-f3cc0599-3ff8-45ee-97b9-98df5e9210d3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"none": null, "int": 123, "float": 0.1, "list": [1, 2], "dict": {"cat": "meow"}, "str": "foo", "bool": true}, "created_at": "2019-10-11T05:54:39.363418+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {u'none': None, u'int': 123, u'float': 0.1, u'list': [1, 2], u'bool': True, u'str': u'foo', u'dict': {u'cat': u'meow'}}, u'created_at': u'2019-10-11T05:54:39.363418+00:00', u'updated_at': None, u'connector_id': u'iqn.2012-06.com.example:initiator', u'type': u'iqn'} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra [0.058022s] ... ok {2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set [0.030496s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data [0.011259s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client [0.011558s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7b3657bb-5e73-4b1d-9d6d-3d67e0c96142 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id [0.036775s] ... ok 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-112daa7d-8dee-45e7-987e-85f23237b018 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent [0.063356s] ... ok DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c182e117-08c0-4d32-a6cf-f88fb5cdbde7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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\\\".\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state [0.057323s] ... ok DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-fc4a1244-8ffe-4114-a68b-bf705ea8cc8e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked [0.061218s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/4643e2f1-7fd7-4419-9054-5513caa39002 Openstack-Request-Id: req-ecd77f0a-87a0-46f0-a3fa-63e410143337 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "4643e2f1-7fd7-4419-9054-5513caa39002", "links": [{"href": "http://localhost/v1/portgroups/4643e2f1-7fd7-4419-9054-5513caa39002", "rel": "self"}, {"href": "http://localhost/portgroups/4643e2f1-7fd7-4419-9054-5513caa39002", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:39.447706+00:00", "updated_at": null, "ports": [{"href": "http://localhost/v1/portgroups/4643e2f1-7fd7-4419-9054-5513caa39002/ports", "rel": "self"}, {"href": "http://localhost/portgroups/4643e2f1-7fd7-4419-9054-5513caa39002/ports", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {}, "properties": {}, "name": "fooname"} GET: /v1/portgroups/4643e2f1-7fd7-4419-9054-5513caa39002 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'4643e2f1-7fd7-4419-9054-5513caa39002', u'links': [{u'href': u'http://localhost/v1/portgroups/4643e2f1-7fd7-4419-9054-5513caa39002', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/4643e2f1-7fd7-4419-9054-5513caa39002', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.447706+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {}, u'ports': [{u'href': u'http://localhost/v1/portgroups/4643e2f1-7fd7-4419-9054-5513caa39002/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/4643e2f1-7fd7-4419-9054-5513caa39002/ports', u'rel': u'bookmark'}], u'name': u'fooname'} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid [0.081749s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config [0.021144s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix [0.012754s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info [0.011621s] ... ok 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-901ca85b-05e0-4ff5-aa95-3c19abcf47dd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'value': u'1', 'op': 'replace'}'. Reason: can't replace non-existent object 'node_id'\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id [0.035100s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': 'invalid-format', 'name': 'fooname'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5d79d23b-f7ab-4a40-9562-465a6b9c021e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format [0.039319s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected [0.027107s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info [0.007965s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail [0.017526s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail [0.007223s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14283c98-0a26-47d7-9515-b2338a8c2468 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:39.566364+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "aa:bb:cc:dd:ee:ff", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed [0.088490s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls [0.013332s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-edd49254-8ce8-4410-b760-39beb7a30b75 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'properties': {'bond_prop': 123}, 'name': 'fooname'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-620d2d14-fe0f-4322-9f67-fbbcdbdbef45 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": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version [0.066218s] ... ok 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-38635921-22dc-4a81-8cb2-4c7c8a1f3657 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name [0.048868s] ... ok GET: /v1/volume/targets?detail=True&limit=3 {} GOT:{u'targets': [{u'boot_index': 0, u'uuid': u'ef447099-ed18-4eed-98a9-47c43f394bd6', u'links': [{u'href': u'http://localhost/v1/volume/targets/ef447099-ed18-4eed-98a9-47c43f394bd6', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/ef447099-ed18-4eed-98a9-47c43f394bd6', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.529448+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}}, {u'boot_index': 1, u'uuid': u'0de0e0af-09e9-4a45-b840-c52bbadf6ae8', u'links': [{u'href': u'http://localhost/v1/volume/targets/0de0e0af-09e9-4a45-b840-c52bbadf6ae8', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/0de0e0af-09e9-4a45-b840-c52bbadf6ae8', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.531008+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}}, {u'boot_index': 2, u'uuid': u'394faa31-0ad1-4427-afb5-da360a2f72e8', u'links': [{u'href': u'http://localhost/v1/volume/targets/394faa31-0ad1-4427-afb5-da360a2f72e8', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/394faa31-0ad1-4427-afb5-da360a2f72e8', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.532504+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}}], u'next': u'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=394faa31-0ad1-4427-afb5-da360a2f72e8'} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail [0.079548s] ... ok {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found [0.049818s] ... ok 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-127e4580-033d-450d-96fb-22877b8eb352 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields [0.032389s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-1e77a6f5-7587-48ac-ac25-f71143638e8f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:39.628639+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": null, "internal_info": {}, "properties": {}, "name": "fooname"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.628639+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': None, u'internal_info': {}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address [0.103411s] ... ok POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-09764bb9-9609-4aba-a802-b2982c671bb9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid [0.044784s] ... ok PATCH: /v1/portgroups/698bd4e7-e172-4bd8-91d3-e1449dc95705 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b41e5d55-5a55-44c1-891f-cebe676fb654 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Portgroup 698bd4e7-e172-4bd8-91d3-e1449dc95705 could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found [0.041052s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success [0.068317s] ... ok GET: /v1/volume/targets?node=test-node {} GOT:{u'targets': [{u'boot_index': 0, u'uuid': u'681e706c-f2ea-43e5-b8eb-d58168606ead', u'links': [{u'href': u'http://localhost/v1/volume/targets/681e706c-f2ea-43e5-b8eb-d58168606ead', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/681e706c-f2ea-43e5-b8eb-d58168606ead', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 1, u'uuid': u'8ece24ef-5d28-4ad9-952d-7728ece65290', u'links': [{u'href': u'http://localhost/v1/volume/targets/8ece24ef-5d28-4ad9-952d-7728ece65290', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/8ece24ef-5d28-4ad9-952d-7728ece65290', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 2, u'uuid': u'4e1220dd-726c-4786-a4dd-fb8f8d610b6d', u'links': [{u'href': u'http://localhost/v1/volume/targets/4e1220dd-726c-4786-a4dd-fb8f8d610b6d', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/4e1220dd-726c-4786-a4dd-fb8f8d610b6d', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}]} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok [0.061237s] ... ok GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'boot_index': 0, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.699566+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one [0.041187s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {'vif_port_id': 'foo'}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-aac3046c-bc5b-4e66-b597-9d2e1987b7bb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"vif_port_id": "foo"}, "created_at": "2019-10-11T05:54:39.767598+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "foo"}, "properties": {}, "name": "fooname"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id_deprecated [0.053469s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52-54-00-cf-2d-31', 'name': 'fooname'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c702565f-738e-4015-8253-2022117be641 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 52-54-00-cf-2d-31.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter [0.043612s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ca0bfe6-3198-4f22-947c-f1438c0c3b54 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:39.735377+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "aa:bb:cc:dd:ee:ff", "internal_info": {"bar": "buzz"}, "properties": {}, "name": "pg.1"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized [0.074562s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=boot_index,extra {} GOT:{u'boot_index': 0, u'links': [{u'href': u'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields [0.050048s] ... ok GET: /v1/volume/targets {} GOT:{u'targets': [{u'boot_index': 0, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}]} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one [0.040256s] ... ok GET: /v1/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version [0.022853s] ... ok {2} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy [0.025565s] ... ok {2} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_segmented [0.025540s] ... ok {2} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show [0.011053s] ... ok {2} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file [0.008364s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_ioerror [0.011231s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length [0.021224s] ... ok GET: /v1/volume/targets?sort_key=uuid {} POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href [0.009090s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-1dabf578-bd4c-40de-af5c-9159c495f7a2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:39.865348+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {}, "properties": {}, "name": "fooname"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping [0.053381s] ... ok {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service [0.012380s] ... ok {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service [0.008039s] ... ok GOT:{u'targets': [{u'boot_index': 1, u'uuid': u'bd2a7823-5717-451f-8608-3774461c06c7', u'links': [{u'href': u'http://localhost/v1/volume/targets/bd2a7823-5717-451f-8608-3774461c06c7', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/bd2a7823-5717-451f-8608-3774461c06c7', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 0, u'uuid': u'de65e088-2e8b-400c-b827-eff1a5627215', u'links': [{u'href': u'http://localhost/v1/volume/targets/de65e088-2e8b-400c-b827-eff1a5627215', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/de65e088-2e8b-400c-b827-eff1a5627215', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 2, u'uuid': u'f2f08417-ad3c-4d2a-b70e-9f47384b8e5c', u'links': [{u'href': u'http://localhost/v1/volume/targets/f2f08417-ad3c-4d2a-b70e-9f47384b8e5c', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/f2f08417-ad3c-4d2a-b70e-9f47384b8e5c', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}]} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key [0.059263s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-814996a4-d73f-40f8-8f68-59669e1b0655 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {"vif_port_id": "bar"}, "created_at": "2019-10-11T05:54:39.810484+00:00", "updated_at": "2019-10-11T05:54:39.852877+00:00", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {"tenant_vif_port_id": "bar", "bar": "buzz"}, "properties": {}, "name": "fooname"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id [0.073402s] ... ok 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-662d3914-b47c-47e7-b02c-a46e17e497e1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent [0.033125s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-6482401e-8908-49aa-aae3-4d7b2e53b07a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {}, "properties": {}, "name": "fooname"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2000-01-01T00:00:00+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup [0.083276s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg [0.036700s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso [0.011515s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fails_no_grub_cfg [0.016008s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__umount_without_raise [0.008778s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image [0.014776s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails [0.012472s] ... ok POST: /v1/heartbeat/test.1 {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-2a3eaa39-de9f-43fc-91ab-6200955b18cc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name [0.052241s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux [0.017590s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop [0.009242s] ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-911bd20f-5c6b-4906-abb3-81b88c83520d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail [0.093519s] ... ok GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=5eb5b264-ab8c-4823-afc4-0cc76e3994c6 {} GOT:{u'node': {u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'uuid': u'5eb5b264-ab8c-4823-afc4-0cc76e3994c6', u'driver_internal_info': {u'private_state': u'secret value'}, u'links': [{u'href': u'http://localhost/v1/nodes/5eb5b264-ab8c-4823-afc4-0cc76e3994c6', u'rel': u'self'}, {u'href': u'http://localhost/nodes/5eb5b264-ab8c-4823-afc4-0cc76e3994c6', u'rel': u'bookmark'}], u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}}, u'config': {u'metrics': {u'prepend_host': False, u'prepend_uuid': False, u'backend': u'statsd', u'prepend_host_reverse': True, u'global_prefix': None}, u'heartbeat_timeout': 300, u'metrics_statsd': {u'statsd_port': 8125, u'statsd_host': u'localhost'}}} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup [0.045362s] ... ok {2} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size [0.011185s] ... ok {2} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service [0.009557s] ... ok 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-f89c8f33-01ba-4eea-af70-ce6fdb79be7b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found [0.065110s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values [0.007476s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr [0.027586s] ... ok {2} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src [0.020781s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_dict_attr [0.011197s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op [0.008741s] ... ok {2} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image [0.013298s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_missing_local_link_mandatory_key [0.008407s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': 'AA:BB:CC:DD:EE:FF', 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-1a36429c-3e20-4f77-a3db-6a2bf033dbfb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:39.984713+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "aa:bb:cc:dd:ee:ff", "internal_info": {}, "properties": {}, "name": "fooname"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:39.984713+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'aa:bb:cc:dd:ee:ff', u'internal_info': {}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized [0.060856s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-27b7114e-90b1-425f-9cc6-42e02afe80a8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error [0.038627s] ... ok {2} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image [0.012339s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_mandatory [0.007430s] ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 0, 'op': 'replace'}] POST: /v1/portgroups {'node_uuid': 'invalid-format', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-568ae5b1-d069-422a-8383-d341300a9765 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received invalid-format.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format [0.029524s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_bad_id [0.015264s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr [0.007277s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item [0.007869s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail [0.007190s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success [0.006930s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_version_and_cap [0.045583s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_serialization [0.013100s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': 'AA:AA:AA:11:22:33', 'name': 'foo'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-e67ab08f-1aff-4068-aa61-3e12d9080236 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:40.117491+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "aa:aa:aa:11:22:33", "internal_info": {}, "properties": {}, "name": "foo"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:40.117491+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'aa:aa:aa:11:22:33', u'internal_info': {}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'foo'} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok [0.066187s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath [0.008496s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success [0.006947s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_unexpected_failure [0.020458s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit [0.009310s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d6c79119-4e8e-41cc-8f16-a51d053d4c89 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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\\\".\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state [0.123358s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin [0.011431s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties [0.007822s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups [0.008448s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid [0.007721s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive [0.016832s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid [0.033969s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail [0.008056s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_admin_role [0.059008s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure [0.038879s] ... ok POST: /v1/portgroups {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'extra': {}, 'standalone_ports_supported': True, 'address': '52:54:00:cf:2d:31', 'name': 'fooname'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-f51f410a-0c8f-4d8e-a64a-074c3bd2f461 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "extra": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "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"}], "standalone_ports_supported": true, "mode": "active-backup", "address": "52:54:00:cf:2d:31", "internal_info": {}, "properties": {}, "name": "fooname"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'links': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2000-01-01T00:00:00+00:00', u'updated_at': None, u'properties': {}, u'standalone_ports_supported': True, u'mode': u'active-backup', u'address': u'52:54:00:cf:2d:31', u'internal_info': {}, u'ports': [{u'href': u'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', u'rel': u'bookmark'}], u'name': u'fooname'} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 [0.067176s] ... ok POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} GOT:Response: 202 Accepted Openstack-Request-Id: req-888f0abf-3b9b-409f-92ac-005755874d8b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version [0.039279s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs [0.008749s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs [0.007986s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail [0.007983s] ... ok GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail [0.008905s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver [0.007818s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields [0.007947s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestService.test_invalid_requests [0.041993s] ... ok 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-f22f947b-cec3-45e9-afbf-e1e599cfb010 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "created_at": "2019-10-11T05:54:40.163132+00:00", "updated_at": "2019-10-11T05:54:40.166419+00:00", "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi [0.063164s] ... ok PATCH: /v1/volume/targets/4e04d077-1cae-4bee-8fec-397206ed1401 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a65e13c5-02ac-437d-ba99-afd4696bbaa1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Volume target 4e04d077-1cae-4bee-8fec-397206ed1401 could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found [0.035732s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail [0.008657s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs [0.008608s] ... ok GOT:{u'node': {u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'uuid': u'e5cb2229-922b-4fff-9612-37e1ed916c68', u'driver_internal_info': {u'private_state': u'secret value'}, u'links': [{u'href': u'http://localhost/v1/nodes/e5cb2229-922b-4fff-9612-37e1ed916c68', u'rel': u'self'}, {u'href': u'http://localhost/nodes/e5cb2229-922b-4fff-9612-37e1ed916c68', u'rel': u'bookmark'}], u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}}, u'config': {u'metrics': {u'prepend_host': False, u'prepend_uuid': False, u'backend': u'statsd', u'prepend_host_reverse': True, u'global_prefix': None}, u'heartbeat_timeout': 300, u'metrics_statsd': {u'statsd_port': 8125, u'statsd_host': u'localhost'}}} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses [0.073886s] ... ok GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=4e55a0ce-cdea-49fd-b1ff-21f7e0e1a8c2 {} POST: /v1/volume/targets {'boot_index': 0, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'volume_type': 'iscsi', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e08879af-8837-4145-92d7-b2092b389f9d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error [0.043530s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface [0.012730s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name [0.008393s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name [0.008966s] ... ok GOT:{u'node': {u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'uuid': u'4e55a0ce-cdea-49fd-b1ff-21f7e0e1a8c2', u'driver_internal_info': {u'private_state': u'secret value'}, u'links': [{u'href': u'http://localhost/v1/nodes/4e55a0ce-cdea-49fd-b1ff-21f7e0e1a8c2', u'rel': u'self'}, {u'href': u'http://localhost/nodes/4e55a0ce-cdea-49fd-b1ff-21f7e0e1a8c2', u'rel': u'bookmark'}], u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}}, u'config': {u'metrics': {u'prepend_host': False, u'prepend_uuid': False, u'backend': u'statsd', u'prepend_host_reverse': True, u'global_prefix': None}, u'heartbeat_timeout': 300, u'metrics_statsd': {u'statsd_port': 8125, u'statsd_host': u'localhost'}}} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid [0.060659s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name [0.008855s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name [0.008190s] ... ok POST: /v1/volume/targets {'boot_index': 0, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'volume_type': 'iscsi', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e47364d8-0616-4b99-8004-148b757921fa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid [0.028869s] ... ok POST: /v1/volume/targets {'boot_index': 0, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6b1cb09c-e0c4-4ad6-8911-89d8a14f48b1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute volume_type. Value: 'None'. Mandatory field missing.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type [0.042133s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async [0.008897s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings [0.007151s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match [0.008128s] ... ok GET: /v1/volume/ {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9a2f30b2-07aa-490c-a7c4-70f9b16d1381 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version [0.029680s] ... ok 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 {} POST: /v1/volume/targets {'boot_index': 0, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'volume_type': 'iscsi', 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8198e7e0-de6c-4fc5-a497-c26532b177e9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found [0.048291s] ... ok POST: /v1/volume/targets {'boot_index': 0, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'volume_type': 'iscsi', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-9ef6afbe-f075-45cd-873b-eb340e7d7cf8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:40.456175+00:00", "updated_at": null, "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping [0.060507s] ... ok GOT:{u'node': {u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}, u'uuid': u'aacc79d0-6fbe-413d-aed9-abc4e6fa83ab', u'driver_internal_info': {u'private_state': u'secret value'}, u'links': [{u'href': u'http://localhost/v1/nodes/aacc79d0-6fbe-413d-aed9-abc4e6fa83ab', u'rel': u'self'}, {u'href': u'http://localhost/nodes/aacc79d0-6fbe-413d-aed9-abc4e6fa83ab', u'rel': u'bookmark'}], u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}}, u'config': {u'metrics': {u'prepend_host': False, u'prepend_uuid': False, u'backend': u'statsd', u'prepend_host_reverse': True, u'global_prefix': None}, u'heartbeat_timeout': 300, u'metrics_statsd': {u'statsd_port': 8125, u'statsd_host': u'localhost'}}} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address [0.086542s] ... ok GET: /v1/lookup {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-135a20aa-5065-4e5d-be86-1fd55a6badab X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\"}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided [0.034650s] ... ok GET: / {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-188205c7-a9f6-48be-8f2b-a73427f92ad1 {"default_version": {"status": "CURRENT", "min_version": "1.1", "version": "1.58", "id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}]}, "versions": [{"status": "CURRENT", "min_version": "1.1", "version": "1.58", "id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}]}], "name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which aims to provision baremetal machines."} GET: /v1 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f4d657a-e1fd-40ab-bf14-e03d80eec051 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "version": {"status": "CURRENT", "min_version": "1.1", "version": "1.58", "id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}]}, "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "type": "text/html", "rel": "describedby"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "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"}], "id": "v1"} {3} ironic.tests.unit.api.test_acl.TestACL.test_public_api [0.051792s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_found [0.200180s] ... ok GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} {2} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_post [0.023893s] ... ok {3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id [0.033859s] ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-784a8634-dd9c-405f-9164-0dacc0858f91 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version [0.054566s] ... ok {3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin [0.014247s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestService.test_success [0.024280s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version [0.014091s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low [0.008103s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_event_missing_madatory_field [0.009111s] ... ok GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d7a04316-7669-4752-9305-49561f4b3fca {"error_message": "{\"debuginfo\": null, \"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)\"}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks [0.028066s] ... ok DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-63c8dc7c-f99e-44cd-b9b3-8312802e88f8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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\\\".\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state [0.051156s] ... ok {2} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth [0.005716s] ... ok {2} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session [0.004521s] ... ok GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4095a14a-43e2-4890-93f4-e55b11f69e49 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\"}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks [0.022227s] ... ok GET: /v1/volume/connectors/?limit=3 {} GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'2e6a6682-6cf2-48db-96d2-44dd4feea6ef', u'links': [{u'href': u'http://localhost/v1/volume/connectors/2e6a6682-6cf2-48db-96d2-44dd4feea6ef', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/2e6a6682-6cf2-48db-96d2-44dd4feea6ef', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-0'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'44cc3b30-f515-443d-b091-a84c5c5fa8ad', u'links': [{u'href': u'http://localhost/v1/volume/connectors/44cc3b30-f515-443d-b091-a84c5c5fa8ad', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/44cc3b30-f515-443d-b091-a84c5c5fa8ad', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-1'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'9bb6d6a1-049a-47ec-b0a2-5cc767e203e2', u'links': [{u'href': u'http://localhost/v1/volume/connectors/9bb6d6a1-049a-47ec-b0a2-5cc767e203e2', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/9bb6d6a1-049a-47ec-b0a2-5cc767e203e2', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-2'}], u'next': u'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=9bb6d6a1-049a-47ec-b0a2-5cc767e203e2'} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links [0.061159s] ... ok GET: /v1/volume/connectors?detail=True {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version [0.022885s] ... ok GET: /v1/volume/connectors?node=test-node {} {1} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_invalid_event_type [0.009334s] ... ok {2} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id [0.087285s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_missing_mandatory_fields_network_port_event [0.007389s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_network_port_event [0.007464s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value [0.022863s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr [0.009664s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_mandatory_attr [0.009234s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_apimultitype_tostring [0.007730s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestListType.test_list_type [0.007223s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_empty_value [0.009119s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_invalid_key [0.007845s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_not_mac_or_datapath_id [0.010028s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_port_id_missing [0.007505s] ... ok GET: /v1/ {} GOT:{u'media_types': [{u'base': u'application/json', u'type': u'application/vnd.openstack.ironic.v1+json'}], u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}, {u'href': u'https://docs.openstack.org//ironic/latest/contributor//webapi.html', u'type': u'text/html', u'rel': u'describedby'}], u'drivers': [{u'href': u'http://localhost/v1/drivers/', u'rel': u'self'}, {u'href': u'http://localhost/drivers/', u'rel': u'bookmark'}], u'portgroups': [{u'href': u'http://localhost/v1/portgroups/', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/', u'rel': u'bookmark'}], u'id': u'v1', u'version': {u'status': u'CURRENT', u'min_version': u'1.1', u'version': u'1.58', u'id': u'v1', u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}]}, u'lookup': [{u'href': u'http://localhost/v1/lookup/', u'rel': u'self'}, {u'href': u'http://localhost/lookup/', u'rel': u'bookmark'}], u'heartbeat': [{u'href': u'http://localhost/v1/heartbeat/', u'rel': u'self'}, {u'href': u'http://localhost/heartbeat/', u'rel': u'bookmark'}], u'nodes': [{u'href': u'http://localhost/v1/nodes/', u'rel': u'self'}, {u'href': u'http://localhost/nodes/', u'rel': u'bookmark'}], u'ports': [{u'href': u'http://localhost/v1/ports/', u'rel': u'self'}, {u'href': u'http://localhost/ports/', u'rel': u'bookmark'}], u'chassis': [{u'href': u'http://localhost/v1/chassis/', u'rel': u'self'}, {u'href': u'http://localhost/chassis/', u'rel': u'bookmark'}]} {3} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root [0.027797s] ... ok {3} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning [0.023017s] ... ok {2} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty [0.051412s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name [0.008714s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name [0.008076s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_name [0.007802s] ... ok GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'9f879f27-53bf-436f-abc8-91b0d266194b', u'links': [{u'href': u'http://localhost/v1/volume/connectors/9f879f27-53bf-436f-abc8-91b0d266194b', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/9f879f27-53bf-436f-abc8-91b0d266194b', u'rel': u'bookmark'}], u'connector_id': u'test-value-0'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'5c5f480a-2097-43d9-aa6b-6e4abdea7db5', u'links': [{u'href': u'http://localhost/v1/volume/connectors/5c5f480a-2097-43d9-aa6b-6e4abdea7db5', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/5c5f480a-2097-43d9-aa6b-6e4abdea7db5', u'rel': u'bookmark'}], u'connector_id': u'test-value-1'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'603d300d-2e8a-4f29-8d1a-493252ff4acc', u'links': [{u'href': u'http://localhost/v1/volume/connectors/603d300d-2e8a-4f29-8d1a-493252ff4acc', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/603d300d-2e8a-4f29-8d1a-493252ff4acc', u'rel': u'bookmark'}], u'connector_id': u'test-value-2'}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok [0.079798s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_uuid [0.024304s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_missing_mandatory_key [0.011050s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch [0.007966s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning [0.059224s] ... ok GET: /v1/volume/connectors {} GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'02901f96-45dc-4a71-b5d2-5cc830b88128', u'links': [{u'href': u'http://localhost/v1/volume/connectors/02901f96-45dc-4a71-b5d2-5cc830b88128', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/02901f96-45dc-4a71-b5d2-5cc830b88128', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-0'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'd68cd140-ea4a-4eac-ba64-1f024fe85732', u'links': [{u'href': u'http://localhost/v1/volume/connectors/d68cd140-ea4a-4eac-ba64-1f024fe85732', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/d68cd140-ea4a-4eac-ba64-1f024fe85732', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-1'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'4baab728-d1c3-427e-9a13-fb4fdf7a4d3e', u'links': [{u'href': u'http://localhost/v1/volume/connectors/4baab728-d1c3-427e-9a13-fb4fdf7a4d3e', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/4baab728-d1c3-427e-9a13-fb4fdf7a4d3e', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-2'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'dd9b50bf-46bf-45ef-b760-09094914d249', u'links': [{u'href': u'http://localhost/v1/volume/connectors/dd9b50bf-46bf-45ef-b760-09094914d249', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/dd9b50bf-46bf-45ef-b760-09094914d249', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-3'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'8d3faf8a-ad62-4695-a36a-45ff5c152fd0', u'links': [{u'href': u'http://localhost/v1/volume/connectors/8d3faf8a-ad62-4695-a36a-45ff5c152fd0', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/8d3faf8a-ad62-4695-a36a-45ff5c152fd0', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-4'}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many [0.085541s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path [0.008481s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success [0.007881s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir [0.007801s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties [0.008762s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive [0.008152s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers [0.008531s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints [0.008201s] ... ok GET: /v1/volume/connectors?sort_key=uuid {} GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'89591a00-e2d8-4775-a5b6-9a7803767c94', u'links': [{u'href': u'http://localhost/v1/volume/connectors/89591a00-e2d8-4775-a5b6-9a7803767c94', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/89591a00-e2d8-4775-a5b6-9a7803767c94', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-1'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'a00fdea7-9ae1-4efa-8878-4edd30a10bd1', u'links': [{u'href': u'http://localhost/v1/volume/connectors/a00fdea7-9ae1-4efa-8878-4edd30a10bd1', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/a00fdea7-9ae1-4efa-8878-4edd30a10bd1', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-2'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'bc57fd74-bbc9-4949-9723-0f0ba4c9fe15', u'links': [{u'href': u'http://localhost/v1/volume/connectors/bc57fd74-bbc9-4949-9723-0f0ba4c9fe15', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/bc57fd74-bbc9-4949-9723-0f0ba4c9fe15', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-0'}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key [0.077963s] ... ok {3} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros [0.197078s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning [0.052634s] ... ok foo() migrated 15 of 15 objects. {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits [0.009470s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs [0.008373s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails [0.012298s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group [0.008249s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail [0.008197s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info [0.053666s] ... ok Error while running foo: bar. {3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions [0.013877s] ... ok func1() migrated 15 of 15 objects. func2() migrated 20 of 20 objects. {3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 [0.013620s] ... ok {3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception [0.012829s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none [0.010663s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs [0.008648s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail [0.008187s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class [0.010148s] ... ok "max-count" must be a positive value. Running batches of 50 until migrations have been completed. Data migrations have completed. {3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations [0.014639s] ... ok Running batches of 50 until migrations have been completed. {3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception [0.013187s] ... ok GET: /v1/volume/connectors?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-46edbea1-ab59-4aed-9303-17a2481337d6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\"}"} GET: /v1/volume/connectors?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-df02b166-4b56-4ee0-a4c0-819ed0d104db X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid [0.047491s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_extra [0.057536s] ... ok {3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg [0.014829s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail [0.008255s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name [0.009616s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name [0.008084s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid [0.009239s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name [0.008154s] ... ok 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-6a236596-2913-4240-a6c5-cf3b0421bebc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:40.895936+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid [0.060179s] ... ok 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-8b655ad4-827e-4be6-b538-db4c4f632787 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:40.956449+00:00", "updated_at": null, "connector_id": "test-connector-id-123", "type": "iqn"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root [0.066485s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names [0.010337s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async [0.008434s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach [0.010367s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned [0.007319s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned [0.008708s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates [0.010664s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found [0.085139s] ... ok 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-bfcc9c4e-dcb0-4ac1-8965-43fcd429f635 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/value', 'op': 'remove'}'. Reason: can't remove non-existent object 'value'\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field [0.042526s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_extra [0.126261s] ... ok DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-2492f6b8-1a8d-4edd-aee9-c76c120d9416 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid [0.044643s] ... ok DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version [0.024345s] ... 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-6cb9bbe9-0cef-46e3-a2a9-aba04a1b14e2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id [0.039634s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes [0.083335s] ... ok PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f68fef3-3f74-4b86-ba3b-f6187c374b67 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"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\\\".\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state [0.056313s] ... ok GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-26d96248-a344-47c0-91b7-e14706518ce1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked [0.062953s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value [0.062466s] ... ok PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GET: /v1/volume/connectors {} {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info [0.125522s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-03d74a95-bbb1-4c27-83a2-6bccc8d7d7fe X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:41.167006+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid [0.060005s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed [0.070620s] ... ok 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-7e56b3d1-648f-46a5-95de-f2c23a35d42b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type [0.034591s] ... ok POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'test-connector-id-456'} GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'de29d5ca-f2f9-4bee-b62a-b6796b2e982c', u'links': [{u'href': u'http://localhost/v1/volume/connectors/de29d5ca-f2f9-4bee-b62a-b6796b2e982c', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/de29d5ca-f2f9-4bee-b62a-b6796b2e982c', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-0'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'091d1fbc-9153-4b51-a54d-a91ea45eb0ce', u'links': [{u'href': u'http://localhost/v1/volume/connectors/091d1fbc-9153-4b51-a54d-a91ea45eb0ce', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/091d1fbc-9153-4b51-a54d-a91ea45eb0ce', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-1'}, {u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'type': u'iqn', u'uuid': u'3300c64c-2dcf-4e3a-be4f-fac720346ba0', u'links': [{u'href': u'http://localhost/v1/volume/connectors/3300c64c-2dcf-4e3a-be4f-fac720346ba0', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/3300c64c-2dcf-4e3a-be4f-fac720346ba0', u'rel': u'bookmark'}], u'connector_id': u'test-connector_id-2'}], u'next': u'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=3300c64c-2dcf-4e3a-be4f-fac720346ba0'} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit [0.071374s] ... ok GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-185c107e-e605-480f-b597-254655845803 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single [0.040819s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-20cb4b7e-e9e8-44ef-b1b7-a75f105a825b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:41.286271+00:00", "updated_at": null, "connector_id": "test-connector-id-456", "type": "iqn"} POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'type': 'iqn', 'uuid': '509964f2-39de-472f-a7cb-792890c780ea', 'connector_id': 'test-connector-id-456'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-f9461efe-67c0-42b1-aa57-8270b7d68f15 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist [0.091173s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed [0.077130s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session [0.012557s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached [0.016937s] ... ok GET: /v1/volume/connectors?detail=True&node=test-node {} GOT:{u'connectors': [{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:41.295266+00:00', u'updated_at': None, u'connector_id': u'iqn.2012-06.com.example:initiator', u'type': u'iqn'}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok [0.051761s] ... ok {3} ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context [0.008371s] ... ok {3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface [0.017770s] ... ok GET: /v1/volume/connectors/detail {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-807b1e75-8d0f-49b4-a2ea-0dc2108ece84 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path [0.041579s] ... ok {2} ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure [0.141631s] ... ok GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6abcfa5a-d3bb-437d-b98f-df398138e671 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single [0.035921s] ... ok GET: /v1/volume/targets?detail=True {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version [0.022442s] ... ok GET: /v1/volume/connectors?fields=uuid,extra {}{2} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate [0.016154s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token [0.014424s] ... ok GET: /v1/volume/targets/detail {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dcdcca37-82bb-4706-b9aa-14af6cb6f01d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute target_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path [0.038651s] ... ok GOT:{u'connectors': [{u'uuid': u'17e07542-5e46-4eb4-ab34-e7250d2cd72d', u'links': [{u'href': u'http://localhost/v1/volume/connectors/17e07542-5e46-4eb4-ab34-e7250d2cd72d', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/17e07542-5e46-4eb4-ab34-e7250d2cd72d', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'107f68fc-ff80-40ca-acfd-068b9a6a870b', u'links': [{u'href': u'http://localhost/v1/volume/connectors/107f68fc-ff80-40ca-acfd-068b9a6a870b', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/107f68fc-ff80-40ca-acfd-068b9a6a870b', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'50f3c937-5b15-49c9-8156-46743d1bc757', u'links': [{u'href': u'http://localhost/v1/volume/connectors/50f3c937-5b15-49c9-8156-46743d1bc757', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/50f3c937-5b15-49c9-8156-46743d1bc757', u'rel': u'bookmark'}], u'extra': {}}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields [0.083439s] ... ok {3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces [0.074987s] ... ok GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} {3} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node [0.027761s] ... ok {3} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two [0.012307s] ... ok GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:41.481042+00:00', u'updated_at': None, u'connector_id': u'iqn.2012-06.com.example:initiator', u'type': u'iqn'} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one [0.058646s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port [0.077652s] ... ok {3} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults [0.012900s] ... ok {3} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type [0.011497s] ... ok {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled [0.011630s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports [0.068306s] ... ok GET: /v1/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version [0.028478s] ... 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-3ab7f4a0-e6fb-470d-8adc-4273237547c8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id [0.035125s] ... ok {3} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults [0.046205s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false [0.023058s] ... ok GET: /v1/volume/targets?fields=uuid,extra {} 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-984bcc2e-db7a-42b1-b555-bbc7c3f8c05a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent [0.045822s] ... ok {3} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing [0.015783s] ... ok {3} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing [0.011155s] ... ok {3} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default [0.016945s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports [0.057953s] ... ok GOT:{u'targets': [{u'uuid': u'45d5b73f-027f-4368-9b0d-eb74df8e8202', u'links': [{u'href': u'http://localhost/v1/volume/targets/45d5b73f-027f-4368-9b0d-eb74df8e8202', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/45d5b73f-027f-4368-9b0d-eb74df8e8202', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'45183da3-7368-4ba8-b0ce-2867ea69ec91', u'links': [{u'href': u'http://localhost/v1/volume/targets/45183da3-7368-4ba8-b0ce-2867ea69ec91', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/45183da3-7368-4ba8-b0ce-2867ea69ec91', u'rel': u'bookmark'}], u'extra': {}}, {u'uuid': u'3e5d778e-d2c6-44b1-8dcf-90ecaf43e151', u'links': [{u'href': u'http://localhost/v1/volume/targets/3e5d778e-d2c6-44b1-8dcf-90ecaf43e151', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/3e5d778e-d2c6-44b1-8dcf-90ecaf43e151', u'rel': u'bookmark'}], u'extra': {}}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields [0.215878s] ... ok PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] 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-40e9bd05-b3f8-40f0-97f7-d7a910f53119 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields [0.053744s] ... ok {3} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf [0.017217s] ... ok {3} ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint [0.015195s] ... ok {3} ironic.tests.unit.common.test_fsm.FSMTest.test_initialize [0.007768s] ... ok {3} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth [0.015288s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound [0.007826s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url [0.013963s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race [0.060934s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fbe98a48-4056-4a93-9af5-f89ad64aba61 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"foo2": "bar2", "foo3": "bar3"}, "created_at": "2019-10-11T05:54:41.647627+00:00", "updated_at": "2019-10-11T05:54:41.650896+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} 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-4a376b7a-f263-4fe4-b21c-aa0ba88e63f6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:41.647627+00:00", "updated_at": "2019-10-11T05:54:41.650896+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi [0.106236s] ... ok GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version [0.027894s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected [0.013713s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid [0.007408s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache [0.010090s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled [0.009870s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info [0.049093s] ... ok 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-4b065dac-29ae-4849-a870-205f335cf572 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\"}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups [0.024993s] ... ok GET: /v1/volume/targets?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3197cd12-d9de-45de-b770-a7ac03e03d6c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\"}"} GET: /v1/volume/targets?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fa2de424-6e11-4d76-bb50-04d4fb592c67 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\"}"} GET: /v1/volume/targets?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e547b995-21c8-40e6-b4dc-1561a7aacf29 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid [0.039542s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail [0.043936s] ... ok {3} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry [0.038992s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found [0.020434s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed [0.009375s] ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] {3} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success [0.032188s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding [0.024714s] ... ok 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-fad7c8a3-c5f7-4bcd-9209-04bf2d19571b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:41.798526+00:00", "updated_at": null, "connector_id": "test-connector-id-999", "type": "iqn"} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular [0.062999s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0b4a7168-2309-4eaf-836b-8e33992d4cd0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:41.793974+00:00", "updated_at": null, "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova [0.023836s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid [0.079491s] ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url [0.021794s] ... ok {3} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups [0.032015s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-26ba3d42-3d06-456b-82a1-f58f3545adb5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type [0.043430s] ... ok POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 [0.022352s] ... ok {3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found [0.035523s] ... ok {3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval [0.023518s] ... ok {2} ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter [0.014848s] ... ok 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-b966cae9-613e-410b-95b4-0988b02f9103 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/boot_index' is a mandatory attribute and can not be removed\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field [0.035586s] ... ok {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail [0.023464s] ... ok {3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error [0.008977s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service [0.008946s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service [0.007683s] ... ok {2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member [0.018188s] ... ok {2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api [0.013169s] ... ok {2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes [0.012877s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-c756c0c9-f505-4410-962b-a2b65f9fe1fc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2000-01-01T00:00:00+00:00', u'updated_at': None, u'connector_id': u'iqn.2012-06.com.example:initiator', u'type': u'iqn'} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector [0.073374s] ... ok {3} ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs [0.019503s] ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] {3} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_no_esp_imageimg [0.013070s] ... ok {3} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_with_ExecutionError [0.009035s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3cd673b0-6a6e-4241-8af6-e02153f87ead X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"foo2": "bar2", "foo3": "bar3"}, "created_at": "2019-10-11T05:54:41.948975+00:00", "updated_at": "2019-10-11T05:54:41.952202+00:00", "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode [0.014509s] ... ok {2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file [0.058656s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb627b2b-6b38-4302-a590-46cb14d542d6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:41.948975+00:00", "updated_at": "2019-10-11T05:54:41.952202+00:00", "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi [0.099078s] ... ok POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {'foo': 123}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-48ff5bd8-1a49-4a44-bc49-accd72cbe274 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"foo": 123}, "created_at": "2019-10-11T05:54:41.946993+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {u'foo': 123}, u'created_at': u'2019-10-11T05:54:41.946993+00:00', u'updated_at': None, u'connector_id': u'iqn.2012-06.com.example:initiator', u'type': u'iqn'} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id [0.077134s] ... ok POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-647a62ad-f821-4f84-bfa9-5a8f1ff86ce2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute type. Value: 'None'. Mandatory field missing.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type [0.042756s] ... ok {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image [0.018284s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size [0.009144s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service [0.008018s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw [0.012002s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success [0.011742s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version [0.009869s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_failure [0.009912s] ... ok {2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args [0.057313s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info [0.016607s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk [0.020478s] ... ok 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-c00109a3-ee5e-410f-9b98-310dc0239160 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid [0.040971s] ... ok 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-c9a1f4e0-04e8-4e3e-ae4a-1f6eade4d5cd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid [0.047209s] ... ok 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, \"description\": \"\", \"title\": \"Not Found\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version [0.024387s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_no_context [0.025141s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_notification [0.023589s] ... ok POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'type': 'iqn', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-586b0b98-6c5d-4a65-8d87-f52ddc90d860 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:42.080165+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn"} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping [0.061859s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestVolumeConnectorObject.test_volume_connector_init [0.007764s] ... ok DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version [0.024336s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_success_no_result [0.023647s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe [0.079807s] ... ok GET: /v1/volume/targets {} {3} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth [0.005790s] ... ok POST: /v1/volume/targets {'boot_index': 0, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {'foo': 123}, 'volume_type': 'iscsi', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-629284c0-4689-4bcd-95a6-6685a7a71283 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {"foo": 123}, "created_at": "2019-10-11T05:54:42.182996+00:00", "updated_at": null, "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{u'boot_index': 0, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {u'foo': 123}, u'created_at': u'2019-10-11T05:54:42.182996+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id [0.072006s] ... ok POST: /v1/volume/targets {'boot_index': 0, 'extra': {}, 'volume_type': 'iscsi', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:{u'targets': [{u'boot_index': 0, u'uuid': u'e28d5475-bca2-4413-9276-730338377833', u'links': [{u'href': u'http://localhost/v1/volume/targets/e28d5475-bca2-4413-9276-730338377833', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/e28d5475-bca2-4413-9276-730338377833', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 1, u'uuid': u'ae709520-3c3f-4ee0-96ce-f8c9490d8e10', u'links': [{u'href': u'http://localhost/v1/volume/targets/ae709520-3c3f-4ee0-96ce-f8c9490d8e10', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/ae709520-3c3f-4ee0-96ce-f8c9490d8e10', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 2, u'uuid': u'f5a773f9-197f-47a4-9154-3ccb24f3902a', u'links': [{u'href': u'http://localhost/v1/volume/targets/f5a773f9-197f-47a4-9154-3ccb24f3902a', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/f5a773f9-197f-47a4-9154-3ccb24f3902a', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}], u'next': u'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=f5a773f9-197f-47a4-9154-3ccb24f3902a'} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit [0.078502s] ... ok {3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id [0.074563s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot [0.084088s] ... ok GET: /v1/volume/targets?detail=True&node=test-node {} GOT:{u'targets': [{u'boot_index': 0, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:42.223737+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok [0.066216s] ... ok GET: /v1/volume/targets/90b40729-ea1b-4dd3-8d63-a252b6cb326e {} {3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports [0.053311s] ... ok GOT:{u'boot_index': 0, u'uuid': u'90b40729-ea1b-4dd3-8d63-a252b6cb326e', u'links': [{u'href': u'http://localhost/v1/volume/targets/90b40729-ea1b-4dd3-8d63-a252b6cb326e', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/90b40729-ea1b-4dd3-8d63-a252b6cb326e', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:42.289720+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}} GET: /v1/volume/targets/90b40729-ea1b-4dd3-8d63-a252b6cb326e {} GOT:{u'boot_index': 0, u'uuid': u'90b40729-ea1b-4dd3-8d63-a252b6cb326e', u'links': [{u'href': u'http://localhost/v1/volume/targets/90b40729-ea1b-4dd3-8d63-a252b6cb326e', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/90b40729-ea1b-4dd3-8d63-a252b6cb326e', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:42.289720+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}} GET: /volume/targets/90b40729-ea1b-4dd3-8d63-a252b6cb326e {} GOT:{u'boot_index': 0, u'uuid': u'90b40729-ea1b-4dd3-8d63-a252b6cb326e', u'links': [{u'href': u'http://localhost/v1/volume/targets/90b40729-ea1b-4dd3-8d63-a252b6cb326e', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/90b40729-ea1b-4dd3-8d63-a252b6cb326e', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:42.289720+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links [0.085344s] ... ok {3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent [0.055620s] ... ok GET: /v1/volume/targets {} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/0e249652-190b-4119-ab62-b3f208fe9364 Openstack-Request-Id: req-6dae0076-e57b-4252-a2bb-46e551522c33 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "0e249652-190b-4119-ab62-b3f208fe9364", "links": [{"href": "http://localhost/v1/volume/targets/0e249652-190b-4119-ab62-b3f208fe9364", "rel": "self"}, {"href": "http://localhost/volume/targets/0e249652-190b-4119-ab62-b3f208fe9364", "rel": "bookmark"}], "extra": {}, "created_at": "2019-10-11T05:54:42.293989+00:00", "updated_at": null, "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} GET: /v1/volume/targets/0e249652-190b-4119-ab62-b3f208fe9364 {} GOT:{u'boot_index': 0, u'uuid': u'0e249652-190b-4119-ab62-b3f208fe9364', u'links': [{u'href': u'http://localhost/v1/volume/targets/0e249652-190b-4119-ab62-b3f208fe9364', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/0e249652-190b-4119-ab62-b3f208fe9364', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2019-10-11T05:54:42.293989+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid [0.146873s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists [0.141990s] ... ok GOT:{u'targets': [{u'boot_index': 0, u'uuid': u'57fd7cb0-5527-4f43-b82d-b932227306e4', u'links': [{u'href': u'http://localhost/v1/volume/targets/57fd7cb0-5527-4f43-b82d-b932227306e4', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/57fd7cb0-5527-4f43-b82d-b932227306e4', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 1, u'uuid': u'9a138590-50eb-45e2-9183-33025a5a69db', u'links': [{u'href': u'http://localhost/v1/volume/targets/9a138590-50eb-45e2-9183-33025a5a69db', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/9a138590-50eb-45e2-9183-33025a5a69db', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 2, u'uuid': u'aba644f7-c492-4f63-bc8f-3b098c061ba4', u'links': [{u'href': u'http://localhost/v1/volume/targets/aba644f7-c492-4f63-bc8f-3b098c061ba4', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/aba644f7-c492-4f63-bc8f-3b098c061ba4', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 3, u'uuid': u'69ba0612-42a8-4628-902a-771b3e268c9f', u'links': [{u'href': u'http://localhost/v1/volume/targets/69ba0612-42a8-4628-902a-771b3e268c9f', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/69ba0612-42a8-4628-902a-771b3e268c9f', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}, {u'boot_index': 4, u'uuid': u'4693fdd8-294c-493a-829f-d0c4c36f3eaf', u'links': [{u'href': u'http://localhost/v1/volume/targets/4693fdd8-294c-493a-829f-d0c4c36f3eaf', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/4693fdd8-294c-493a-829f-d0c4c36f3eaf', u'rel': u'bookmark'}], u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678'}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many [0.086571s] ... ok {3} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None [0.056584s] ... ok GOT:{u'target_power_state': None, u'links': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'rel': u'bookmark'}], u'target_provision_state': None, u'last_error': None, u'updated_at': None, u'maintenance_reason': None, u'provision_state': None, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'console_enabled': False, u'extra': {}, u'provision_updated_at': None, u'maintenance': False, u'power_state': None, u'driver': u'fake-hardware', u'reservation': None, u'properties': {u'memory_mb': u'4096', u'cpu_arch': u'x86_64', u'local_gb': u'10', u'cpus': u'8'}, u'instance_uuid': None, u'driver_info': {u'fake_password': u'******', u'foo': u'bar'}, u'created_at': None, u'ports': [{u'href': u'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'self'}, {u'href': u'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', u'rel': u'bookmark'}], u'chassis_uuid': None, u'instance_info': {u'foo': u'bar', u'image_url': u'******', u'configdrive': u'******'}} {0} ironic.tests.unit.api.test_acl.TestACL.test_authenticated [0.096394s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe [0.083476s] ... ok {3} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports [0.067396s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} 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-6701e365-97d7-4122-b518-dce2d1f51718 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id [0.063335s] ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-80ae07b0-b394-4c13-b389-978f17d99fd7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get\"}"} {0} ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header [0.073177s] ... ok {0} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request [0.023752s] ... ok {0} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable [0.022382s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-af3042a8-01d6-466e-bd6a-102620b930a4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 100, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:42.525332+00:00", "updated_at": null, "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root [0.076718s] ... ok {3} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id [0.069968s] ... ok GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f114f82e-0c84-4990-90c7-9abf059bf68e {"error_message": "{\"debuginfo\":null,\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\"}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success [0.024535s] ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}]{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image [0.100483s] ... ok GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9e196191-4d6c-483d-84ea-9cf6c7ba30cb {"error_message": "{\"debuginfo\":null,\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\"}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault [0.027718s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9413e829-4402-4062-b696-be69e55f4957 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id [0.041581s] ... ok {3} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_extra [0.065107s] ... ok GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8bca6c58-cffd-45ec-bb03-1a8343ec524e {"error_message": "{\"debuginfo\": null, \"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)\"}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks [0.026045s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue [0.057616s] ... ok 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-b9e392f5-1f5e-4009-84e0-8d4f19d4913d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'value': u'1', 'op': 'replace'}'. Reason: can't replace non-existent object 'node_id'\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id [0.043071s] ... ok {0} ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check [0.016513s] ... ok {0} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request [0.016044s] ... ok {3} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_extra [0.061871s] ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel [0.037025s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing [0.018270s] ... ok GET: / {} GOT:{u'default_version': {u'status': u'CURRENT', u'min_version': u'1.1', u'version': u'1.58', u'id': u'v1', u'links': [{u'href': u'http://spam.ham/eggs/v1/', u'rel': u'self'}]}, u'description': u'Ironic is an OpenStack project which aims to provision baremetal machines.', u'name': u'OpenStack Ironic API', u'versions': [{u'status': u'CURRENT', u'min_version': u'1.1', u'version': u'1.58', u'id': u'v1', u'links': [{u'href': u'http://spam.ham/eggs/v1/', u'rel': u'self'}]}]} {0} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled [0.029955s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name [0.008348s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet [0.012004s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy [0.047493s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure [0.011099s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f9fca7a-3672-49b7-91f6-b9c449841719 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:42.693788+00:00", "updated_at": null, "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid [0.081393s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_pass [0.031198s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing [0.027188s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure [0.010337s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {2} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path [0.021854s] ... ok GET: /v1/ {} GOT:{u'media_types': [{u'base': u'application/json', u'type': u'application/vnd.openstack.ironic.v1+json'}], u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}, {u'href': u'https://docs.openstack.org//ironic/latest/contributor//webapi.html', u'type': u'text/html', u'rel': u'describedby'}], u'drivers': [{u'href': u'http://localhost/v1/drivers/', u'rel': u'self'}, {u'href': u'http://localhost/drivers/', u'rel': u'bookmark'}], u'portgroups': [{u'href': u'http://localhost/v1/portgroups/', u'rel': u'self'}, {u'href': u'http://localhost/portgroups/', u'rel': u'bookmark'}], u'id': u'v1', u'volume': [{u'href': u'http://localhost/v1/volume/', u'rel': u'self'}, {u'href': u'http://localhost/volume/', u'rel': u'bookmark'}], u'version': {u'status': u'CURRENT', u'min_version': u'1.1', u'version': u'1.58', u'id': u'v1', u'links': [{u'href': u'http://localhost/v1/', u'rel': u'self'}]}, u'lookup': [{u'href': u'http://localhost/v1/lookup/', u'rel': u'self'}, {u'href': u'http://localhost/lookup/', u'rel': u'bookmark'}], u'heartbeat': [{u'href': u'http://localhost/v1/heartbeat/', u'rel': u'self'}, {u'href': u'http://localhost/heartbeat/', u'rel': u'bookmark'}], u'nodes': [{u'href': u'http://localhost/v1/nodes/', u'rel': u'self'}, {u'href': u'http://localhost/nodes/', u'rel': u'bookmark'}], u'ports': [{u'href': u'http://localhost/v1/ports/', u'rel': u'self'}, {u'href': u'http://localhost/ports/', u'rel': u'bookmark'}], u'chassis': [{u'href': u'http://localhost/v1/chassis/', u'rel': u'self'}, {u'href': u'http://localhost/chassis/', u'rel': u'bookmark'}]} {0} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root [0.026653s] ... ok {0} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults [0.029677s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version [0.044283s] ... ok func1() migrated 10 of 10 objects. {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone [0.015420s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none [0.018936s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info [0.063049s] ... ok This is badRunning batches of 50 until migrations have been completed. Data migrations have completed. {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches [0.015505s] ... ok {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network [0.088124s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad [0.015134s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 [0.047406s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_bios [0.051504s] ... ok {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network [0.085845s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_uefi [0.049892s] ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}]{3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information [0.070269s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info [0.016409s] ... ok {0} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions [0.158045s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties [0.022839s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type [0.019102s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d420f96a-9005-4f5d-9f4f-488f1fec4832 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 100, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2019-10-11T05:54:43.021900+00:00", "updated_at": null, "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular [0.328554s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level [0.013284s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure [0.068043s] ... ok {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap [0.056352s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks [0.011931s] ... ok {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true [0.020757s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb [0.012554s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb [0.013746s] ... ok {2} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions [0.007787s] ... ok {2} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases [0.010426s] ... ok {2} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects [0.007188s] ... ok POST: /v1/volume/targets {'boot_index': 0, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'volume_type': 'iscsi', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-8464e17d-e7d4-409d-9135-4af44c2d062e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"boot_index": 0, "uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "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"}], "extra": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "volume_type": "iscsi", "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "volume_id": "12345678", "properties": {"target_iqn": "iqn.foo"}} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects [0.007433s] ... ok {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered [0.008530s] ... ok {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported [0.008546s] ... ok {2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity [0.008134s] ... ok {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail [0.058060s] ... ok GOT:{u'boot_index': 0, u'uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'links': [{u'href': u'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'self'}, {u'href': u'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', u'rel': u'bookmark'}], u'extra': {}, u'created_at': u'2000-01-01T00:00:00+00:00', u'updated_at': None, u'volume_type': u'iscsi', u'node_uuid': u'1be26c0b-03f2-4d2e-ae87-c02d7f33c123', u'volume_id': u'12345678', u'properties': {u'target_iqn': u'iqn.foo'}} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target [0.100988s] ... ok {2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base [0.007930s] ... ok {2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity [0.008269s] ... ok POST: /v1/volume/targets {'boot_index': 0, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'volume_type': 'iscsi', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure [0.079056s] ... ok GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"description\": \"\", \"title\": \"Not Found\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version [0.034680s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier [0.007292s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id [0.008560s] ... ok {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail [0.052655s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure [0.065513s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics [0.048027s] ... ok {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports [0.056139s] ... ok POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'volume_type': 'iscsi', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_id': '12345678', 'properties': {'target_iqn': 'iqn.foo'}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b41be42f-f0b8-4bc1-8846-82dc70f9771b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute boot_index. Value: 'None'. Mandatory field missing.\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value [0.053930s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestVolumeTargetObject.test_volume_target_init [0.014245s] ... ok {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up [0.020123s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found [0.059570s] ... ok {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry [0.031500s] ... ok {3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed [0.010257s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure [0.063647s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client [0.017480s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client_deprecated_opts [0.018350s] ... ok {3} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception [0.010805s] ... ok {3} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name [0.009666s] ... ok {3} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate [0.009603s] ... ok GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-96a969e3-70e5-465d-a80e-3b1db328cbff X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get\"}"} {1} ironic.tests.unit.api.test_acl.TestACL.test_non_admin [0.067722s] ... ok {1} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error [0.015328s] ... ok {1} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable [0.019752s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url [0.059443s] ... ok {3} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found [0.009678s] ... ok {2} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale [0.019026s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary [0.020728s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available [0.020866s] ... ok {0} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict [0.008083s] ... ok {3} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 [0.018589s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object [0.014676s] ... ok {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin [0.024047s] ... ok {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api [0.016997s] ... ok GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-897ac219-46a3-46f6-be13-b061aefd509e {"error_message": "{\"debuginfo\":null,\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\"}"} {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug [0.023100s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface [0.013154s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces [0.019314s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf [0.018951s] ... ok {3} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 [0.017808s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create [0.012982s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_get [0.012746s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password [0.014883s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered [0.007302s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe [0.007370s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip [0.006983s] ... ok {2} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities [0.008804s] ... ok {2} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict [0.010250s] ... ok {2} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities [0.007260s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok [0.008295s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok [0.011133s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env [0.051847s] ... ok GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8bfd42f1-21fd-43d3-810d-f10dba4f6f67 {"error_message": "{\"debuginfo\":null,\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\"}"} {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug [0.029040s] ... ok GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c3e4bd5e-ceef-4bfb-848e-baf29c6ff8bb {"error_message": "{\"debuginfo\":null,\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n[u'\"}"} {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success [0.032314s] ... ok GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ba796104-c6e3-4c8d-be11-be87816cc138 {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\"}"} {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback [0.026178s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface [0.020638s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one [0.012631s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled [0.011312s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake [0.050264s] ... ok GET: / {}{2} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting [0.042652s] ... ok GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3235f7bd-5431-45a1-a815-f9cb6eb1dc7b {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\"}"} {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug [0.032744s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path [0.040259s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe [0.016115s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_no_defaults [0.044751s] ... ok {1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request [0.038197s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default [0.017613s] ... ok {2} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance [0.076465s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface [0.018248s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface [0.015767s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_local_boot [0.080882s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf [0.019064s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable [0.008679s] ... ok {2} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch [0.065438s] ... ok {1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request [0.055545s] ... ok GET: / {} GOT:{u'default_version': {u'status': u'CURRENT', u'min_version': u'1.1', u'version': u'1.58', u'id': u'v1', u'links': [{u'href': u'https://mycloud.com/ironic/v1/', u'rel': u'self'}]}, u'description': u'Ironic is an OpenStack project which aims to provision baremetal machines.', u'name': u'OpenStack Ironic API', u'versions': [{u'status': u'CURRENT', u'min_version': u'1.1', u'version': u'1.58', u'id': u'v1', u'links': [{u'href': u'https://mycloud.com/ironic/v1/', u'rel': u'self'}]}]} {1} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled [0.024546s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state [0.007858s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not [0.007341s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed [0.008365s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active [0.008730s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize [0.000209s] ... ok {1} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros [0.037352s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers [0.013846s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception [0.007923s] ... ok {2} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance [0.071665s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue_swift [0.078967s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers [0.012987s] ... ok {2} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node [0.027776s] ... ok {1} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_on_missing_default_boot_option [0.020697s] ... ok func1() migrated 10 of 10 objects. func2() migrated 0 of 0 objects. {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done [0.013022s] ... ok Malformed option m1key1=value1 {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 [0.012314s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk [0.047825s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected [0.024415s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image [0.009219s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance [0.007975s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache [0.009510s] ... ok Data migrations have not completed. Please re-run. {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone [0.024154s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions [0.014476s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl [0.011618s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled [0.011270s] ... ok {2} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch [0.064258s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image [0.061464s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups [0.038702s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href [0.009715s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_connerror [0.009941s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure [0.074297s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe [0.041208s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success [0.015551s] ... ok {2} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node [0.070753s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c [0.018361s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached [0.065092s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 [0.010817s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_code [0.012027s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url [0.009139s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out [0.049041s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_without_is_whole_disk_image [0.060491s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel [0.016272s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref [0.009228s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs [0.014513s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs [0.014449s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue [0.016738s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_one [0.018722s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path [0.011539s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request [0.068076s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails [0.016431s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi_with_esp_image [0.017111s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe [0.016201s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success [0.067955s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_mkisofs_fails [0.021287s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_always_umount [0.016404s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails [0.012783s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_umount_fails [0.017575s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed [0.073860s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates [0.073381s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_failure [0.011425s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_success [0.011817s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config [0.091711s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all [0.011626s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset [0.009823s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service [0.013682s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion [0.012376s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance [0.009930s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure [0.075944s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure [0.015545s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_foreign_class [0.011930s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version_and_cap [0.011208s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success_with_version [0.009757s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id [0.020696s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context [0.008555s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values [0.008420s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported [0.011635s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated [0.037130s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive [0.113408s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker [0.008134s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure_oslo [0.024818s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry [0.025008s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled [0.012461s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi [0.116544s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_malformed_context [0.023727s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_no_blacklisted_methods [0.026881s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task [0.049684s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_non_json_body [0.025915s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address [0.104584s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_unexpected_failure [0.026867s] ... ok {0} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail [0.006016s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script [0.041173s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults [0.057914s] ... ok /usr/lib/python2.7/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,)) {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty [0.055250s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake [0.059875s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces [0.018511s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface [0.017463s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface [0.017396s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles [0.221275s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port [0.053881s] ... ok {1} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported [0.010212s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test_process_event [0.007512s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config [0.072305s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe [0.053947s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable [0.009407s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed [0.007982s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound [0.007648s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries [0.009273s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port [0.051259s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes [0.012381s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context [0.008648s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay [0.008740s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config [0.044129s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports [0.050889s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url [0.010995s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected [0.011832s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes [0.041328s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval [0.025098s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script [0.018039s] ... ok {0} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup [0.051356s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached [0.014541s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry [0.036511s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached [0.013788s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_ipxe_ipv6 [0.048750s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe [0.015970s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info [0.049870s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link [0.014413s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail [0.011738s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 [0.012539s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_without_trailing_slash [0.021103s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping [0.016085s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter [0.009528s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg [0.011470s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema [0.019403s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios [0.013900s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso [0.015129s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node [0.079512s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments [0.011641s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios [0.017764s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty [0.039472s] ... ok {3} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume [0.012237s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token [0.028766s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux [0.016331s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi_with_deploy_iso [0.018314s] ... ok {3} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb [0.016627s] ... ok {3} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level [0.012004s] ... ok {3} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume [0.012569s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_uefi_rootfs_fails [0.015618s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails [0.008970s] ... ok {3} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version [0.010536s] ... ok {3} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure [0.009552s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail [0.067059s] ... ok {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context [0.010986s] ... ok {3} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier [0.007427s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed [0.428368s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image [0.028532s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw [0.012010s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format [0.009544s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present [0.009665s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format [0.008698s] ... ok {3} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled [0.046438s] ... ok {3} ironic.tests.unit.common.test_states.StatesTest.test_state_values_length [0.007359s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance [0.010186s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_can_send_version [0.008458s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success [0.009978s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports [0.071424s] ... ok {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object [0.064168s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_missing_argument [0.023795s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_serialize_objects [0.028897s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag [0.125283s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config [0.006037s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg [0.081013s] ... ok {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails [0.060149s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing [0.049833s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled [0.072210s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups [0.046622s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns [0.109519s] ... ok {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object [0.060960s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info [0.048442s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure [0.008214s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid [0.008472s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing [0.010043s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports [0.069482s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment [0.011001s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment_no_physnet [0.012811s] ... ok {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc [0.059343s] ... ok {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper [0.009560s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ [0.010203s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name [0.007431s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime [0.008383s] ... ok {3} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities [0.007134s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth [0.015013s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context [0.014551s] ... ok {3} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail [0.013183s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start [0.110764s] ... ok {3} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string [0.010024s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception [0.073922s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises [0.008373s] ... ok /usr/lib/python2.7/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,)) {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree [0.020236s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id [0.047626s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail [0.052113s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register [0.045289s] ... ok {3} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail [0.009777s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id [0.052035s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid [0.061942s] ... ok {3} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node [0.068997s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info [0.049236s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured [0.031772s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network [0.103044s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured [0.021040s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down [0.019789s] ... ok {3} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node [0.109373s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names [0.208139s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up [0.041610s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network [0.102065s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry [0.034796s] ... ok {3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active [0.088209s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks [0.068797s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up [0.020082s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure [0.031481s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed [0.014231s] ... ok {3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class [0.063461s] ... ok {3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free [0.008061s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding [0.014472s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure [0.009400s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports [0.119253s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 [0.030127s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed [0.021596s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down [0.036094s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns [0.156566s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 [0.021624s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_admin_api [0.013547s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api [0.015059s] ... ok {3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool [0.107206s] ... ok {3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver [0.012640s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up [0.058648s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password [0.025208s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_create [0.012903s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden [0.014461s] ... ok {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail [0.049807s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface [0.068904s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout [0.085273s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface [0.072017s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug [0.215205s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state [0.153987s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue [0.096677s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info [0.065963s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info [0.063051s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient [0.031306s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue_timeout [0.100738s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron [0.030634s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full [0.167817s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_ipa_debug [0.062891s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down [0.046433s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down [0.029621s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port [0.014731s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_local_boot [0.078384s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address [0.014332s] ... ok {1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid [0.013538s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail [0.161558s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update [0.053283s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 [0.034153s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_rescue [0.079256s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 [0.020837s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel [0.045130s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get [0.015403s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor [0.409262s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api [0.014760s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info [0.063113s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace [0.080223s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot [0.066327s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel [0.026010s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor [0.149035s] ... ok {3} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts [0.220656s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail [0.041917s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type [0.075437s] ... ok {2} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked [0.049924s] ... ok {2} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device [0.069661s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options_unsupported_volume_type [0.065460s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy [0.018850s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy [0.021555s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipa_debug_rescue [0.176124s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk [0.019323s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk [0.053585s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_ipa_debug [0.100651s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled [0.206807s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue [0.048015s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on [0.201135s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_three [0.026119s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path [0.032034s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_swift_partition [0.097852s] ... ok {3} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated [0.146406s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs [0.079414s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail [0.147843s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_swift_wdi [0.111391s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs [0.074107s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options [0.075140s] ... ok {3} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state [0.148838s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_two [0.022721s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_ipxe_config_uefi [0.068893s] ... ok {3} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node [0.031309s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path [0.020474s] ... ok {3} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails [0.020510s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists [0.023747s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail [0.173094s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs [0.063099s] ... ok {3} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists [0.057152s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs [0.065133s] ... ok {3} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked [0.033939s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs [0.062737s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different [0.026877s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission [0.071290s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config [0.029227s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub [0.059650s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success [0.168222s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance [0.054320s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe [0.018198s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address [0.063438s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_without_trailing_slash [0.020680s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir_ipxe [0.018307s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config [0.018118s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config [0.027414s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config [0.030617s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config [0.046114s] ... ok {3} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node [0.280405s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root [0.017714s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes [0.051059s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config [0.045920s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info [0.017418s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property [0.016786s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks [0.013819s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb [0.014105s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk [0.012737s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay [0.013529s] ... ok {2} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled [0.265241s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info [0.018288s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_with_trailing_slash [0.016666s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path [0.017109s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir [0.016478s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks [0.012578s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base [0.008394s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier [0.007449s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier [0.008526s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_with_trailing_slash [0.017508s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot [0.016172s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes [0.037128s] ... ok {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails [0.073392s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay [0.049526s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema [0.013490s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type [0.023849s] ... ok {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta [0.060859s] ... ok {1} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link [0.008729s] ... ok {2} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail [0.186585s] ... ok {1} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST [0.008825s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume [0.017987s] ... ok {1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper [0.011702s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks [0.021440s] ... ok {1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables [0.011899s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name [0.008086s] ... ok {0} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects [0.009946s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions [0.010743s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal [0.012122s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary [0.010382s] ... ok {0} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context [0.007792s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id [0.011104s] ... ok {3} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance [0.346870s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy [0.010217s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format [0.008802s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_warn_about_deprecated_extra_vif_port_id [0.020751s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys [0.008626s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port [0.014544s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled [0.056901s] ... ok {2} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail [0.146470s] ... ok {1} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file [0.018215s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir [0.012285s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in [0.011769s] ... ok {0} ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start [0.043694s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir [0.008446s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default [0.038015s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ [0.066278s] ... ok {3} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled [0.179996s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting [0.035079s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled [0.038247s] ... ok {2} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full [0.155745s] ... ok {3} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port [0.068753s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object [0.071601s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables [0.009951s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id [0.016702s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions [0.007345s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id [0.012720s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac [0.008413s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities [0.007496s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable [0.011679s] ... ok {3} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target [0.058667s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node [0.090944s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok [0.008462s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked [0.029152s] ... ok {0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success [0.007427s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch [0.079880s] ... ok {2} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_skip_step [0.174375s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting [0.052790s] ... ok {2} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port [0.052267s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node [0.073421s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step [0.187609s] ... ok {2} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent [0.052860s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock [0.098474s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations [0.160625s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change [0.151488s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_none [0.184399s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked [0.128192s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation [0.130933s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps [0.048274s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_no_skip [0.047998s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits [0.094654s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state [0.148228s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id [0.144150s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node [0.023057s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error [0.115864s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off [0.149350s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception [0.215539s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked [0.033825s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces [0.126030s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup [0.056923s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations [0.168911s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance [0.090257s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector [0.103180s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default [0.122265s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes [0.070927s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception [0.229225s] ... ok {0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match [0.033563s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed [0.098770s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled [0.149534s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone [0.076305s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn [0.125615s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node [0.211556s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks [0.131308s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked [0.213652s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry [0.169177s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor [0.111929s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps [0.306831s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor [0.035536s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail [0.082704s] ... ok {0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked [0.030929s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found [0.166764s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types [0.024094s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_no_enabled_interfaces [0.017204s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover [0.201011s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task [0.174464s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps [0.315764s] ... ok {0} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean [0.176257s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version [0.198501s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort [0.058750s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none [0.182117s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value [0.201190s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail [0.135627s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled [0.298444s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail [0.077374s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy [0.156473s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail [0.244136s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail [0.158274s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_no_skip_step [0.168059s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step [0.224113s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck [1.053104s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning [0.277249s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_do_next_clean_step_oob_reboot_fail [0.200508s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step [0.204870s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop [0.213110s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_do_next_deploy_step_oob_reboot [0.170827s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool [0.257563s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict [0.050371s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error [0.165391s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device [0.110840s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated [0.147773s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices [0.070574s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail [0.102887s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error [0.185703s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps [0.322602s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail [0.180684s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error [0.182748s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected [0.145734s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error [0.179394s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available [0.143800s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance [0.051693s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail [0.395055s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound [0.050002s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked [0.505300s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound [0.052594s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception [0.201044s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked [0.035492s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked [0.032556s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on [0.048646s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout [0.177628s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning [0.397927s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_all [0.198769s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios [0.074345s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive_old [0.358352s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change [0.267821s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception [0.071434s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done [0.178442s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps_old_rpc [0.172041s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled [0.166957s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error [0.207357s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state [0.159063s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_steps_exception [0.049809s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail [0.361832s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled [0.178945s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue [0.113105s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail [0.076877s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure [0.160100s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait [0.069481s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue [0.110678s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail [0.048640s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception [0.079287s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail [0.077287s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat [0.168473s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean [0.375926s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail [0.087839s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_no_skip [0.046289s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version_deprecated [0.189541s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_unset_clean_step [0.061356s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported [0.070758s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts [0.192609s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step [0.203000s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled [0.171637s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_skip_step [0.168682s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled [0.179659s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled [0.348579s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full [0.161059s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console [0.136790s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled [0.103781s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state [0.147328s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled [0.331869s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail [0.083206s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.169900s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual [0.164006s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state [0.149167s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail [0.415707s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait [0.079321s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps [0.048605s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_as_dict [0.208982s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated [0.159775s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states [1.595812s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_as_dict_with_meta_data [0.212089s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_polling [0.359110s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort [0.168306s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full [0.174521s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort [0.165641s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails [0.158211s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception_old [0.254100s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full [0.241722s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_polling [0.164971s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean [0.151605s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved [0.188741s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok [0.247948s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full [0.162402s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation [0.111676s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears [0.013247s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked [0.013296s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail [0.014239s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock [0.014128s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all [0.222170s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped [0.013111s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit [0.017037s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears [0.014025s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked [0.013985s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception [0.014271s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound [0.102614s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail [0.014169s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state [0.060224s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive [0.247471s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async [0.170682s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on [0.054633s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked [0.036835s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes [0.187082s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.167036s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_old [0.193688s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_async [0.185686s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_deprecated [0.150875s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_all [0.252560s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console [0.198739s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive [0.372097s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_unset_deploy_step [0.048108s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed [0.172610s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async [0.182653s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort [0.094601s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked [0.192521s] ... ok /usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: 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/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: "" 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) {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock [0.026739s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value [0.220862s] ... ok /usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: u"" 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) {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify [0.050197s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot [0.171045s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire [0.017128s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire [0.013634s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped [0.013647s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker [0.013707s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit [0.015769s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire [0.013884s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire [0.013680s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure [0.162549s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail [0.078632s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok [0.157777s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption [0.159235s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp [0.126231s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors [0.455143s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full [0.169904s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name [0.062155s] ... ok {3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes [0.125113s] ... ok {3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates [0.047532s] ... ok {3} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi [0.051314s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_with_network_data [0.198819s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value [0.186719s] ... ok {3} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param [0.047318s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue [0.262021s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop [0.175622s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_console [0.172888s] ... ok {3} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state [0.156392s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated [0.156590s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_has_steps [0.172267s] ... ok {3} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits [0.143723s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state [0.318550s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail [0.082655s] ... ok {3} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value [0.091831s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail [0.128917s] ... ok {3} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found [0.092253s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_no_steps [0.180036s] ... ok {3} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers [0.014974s] ... ok {3} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported [0.015733s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support [0.141391s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_maintenance [0.264696s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state [0.203330s] ... ok {3} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty [0.115344s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance [0.060100s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios [0.082782s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded [0.156950s] ... ok {3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non [0.173541s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported [0.085907s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort [0.228348s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue [0.158829s] ... ok {3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part [0.170030s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual [0.159512s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover [0.168223s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step [0.170384s] ... ok {3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task [0.165491s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance [0.223549s] ... ok {3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management [0.111373s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail [0.189160s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception [0.184582s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled [0.272975s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok [0.167462s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance [0.145535s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state [0.154966s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console [0.217114s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail [0.144289s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done_old [0.197191s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected [0.167896s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail [0.146094s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console [0.224858s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail [0.098398s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error [0.286867s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_and_user_data_as_dict [0.203290s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify [0.176208s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation [0.224363s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_validation_fails [0.178200s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting [0.231877s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception [0.207059s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error [0.191914s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state [0.152644s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old [0.198725s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide [0.206690s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error [0.219188s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail [0.139878s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance [0.163289s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail [0.102929s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout [0.013493s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object [0.016035s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped [0.022349s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions [0.010958s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock [0.016371s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action [0.011512s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2 [0.213083s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean [0.174156s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked [0.111817s] ... ok /usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: 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/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: "" 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/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: u"" 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) {2} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping [0.168960s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage [0.168092s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded [0.035503s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2_old [0.189791s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock [0.015776s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit [0.015195s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync [0.037751s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify [0.035110s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid [0.166689s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync [0.017435s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set [0.033582s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire [0.019841s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire [0.013708s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error [0.192042s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed [0.015852s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success [0.019790s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped [0.013389s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning [0.214603s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire [0.014364s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire [0.013204s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire [0.015224s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node [0.014516s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value [0.275339s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps [0.171574s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port [0.054635s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail [0.067186s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance [0.056181s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance [0.238780s] ... ok /usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: 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/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: "" 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) {3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked [0.033270s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail [0.027459s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake [0.158407s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed [0.018931s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance [0.053519s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged [0.021343s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent [0.047971s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail [0.035225s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock [0.017767s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good [0.016507s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state [0.170082s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked [0.013227s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node [0.055565s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi [0.203557s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes [0.049322s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure [0.055018s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail [0.089675s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire [0.014960s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on [0.047481s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait [0.169441s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate [0.051833s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type [0.051340s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits [0.106494s] ... ok {0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor [0.210809s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces [0.062820s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface [0.085374s] ... ok {2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented [0.066967s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error [0.235606s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface [0.087448s] ... ok {0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown [0.153850s] ... ok {2} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail [0.099640s] ... ok {0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected [0.052448s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported [0.137244s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error [0.196767s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail [0.080161s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait [0.197014s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters [0.140743s] ... ok {2} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting [0.267209s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail [0.087029s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked [0.069392s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock [0.135730s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found [0.075344s] ... ok {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization [0.053231s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync [0.135091s] ... ok {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error [0.048681s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties [0.127346s] ... ok {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach [0.047259s] ... ok {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach [0.049219s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable [0.369458s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config [0.089900s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception [0.015148s] ... ok {3} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets [0.007906s] ... ok {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status [0.016374s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout [0.013954s] ... ok {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification [0.016817s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace [0.012522s] ... ok /usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: 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/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: "" 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) {2} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full [0.409146s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy [0.012747s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port [0.012398s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy [0.012989s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock [0.028863s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error [0.019304s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty [0.090074s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock [0.035849s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down [0.012485s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for [0.017921s] ... ok {2} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked [0.084854s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache [0.025121s] ... ok /usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: u"" 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) {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver [0.028163s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 [0.041576s] ... ok {2} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace [0.099218s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data [0.132529s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception [0.055357s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success [0.020093s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire [0.027446s] ... ok {2} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all [0.065869s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all [0.141935s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped [0.013901s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped [0.013075s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector [0.012888s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target [0.012901s] ... ok {2} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty [0.061851s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru [0.012625s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers [0.140293s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach [0.012648s] ... ok {2} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found [0.059976s] ... ok {3} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure [0.048659s] ... ok {2} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers [0.016436s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerTestHardwareTypeProperties.test_hardware_type_properties_manual_management [0.154639s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled [0.039998s] ... ok {2} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config [0.072064s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all [0.140088s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted [0.048510s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual [0.064103s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo [0.159876s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error [0.051806s] ... ok {1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked [0.031912s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps [0.049831s] ... ok {1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param [0.071195s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps [0.069779s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance [0.295787s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown [0.296666s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled [0.067974s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail [0.059769s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates [0.089479s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts [0.214033s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps [0.076236s] ... ok {2} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state [0.232105s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core [0.049967s] ... ok {2} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift [0.039109s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg [0.047714s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg [0.008053s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg [0.008026s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state [0.010090s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done [0.222040s] ... ok {2} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback [0.038238s] ... ok {2} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action [0.011415s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change [0.009965s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable [0.012547s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises [0.008795s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries [0.019704s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception [0.020404s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated [0.059725s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception [0.019487s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception [0.021130s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok [0.289149s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception [0.018704s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver [0.072493s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded [0.020235s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error [0.009148s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled [0.010073s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception [0.008978s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy [0.009472s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker [0.009457s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc [0.011980s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc [0.010224s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker [0.009116s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state [0.225861s] ... ok {3} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy [0.047375s] ... ok {3} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need [0.050046s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state [0.011092s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state [0.047705s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state_old [0.198580s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify [0.064234s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail [0.058489s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error [0.376874s] ... ok {0} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive [0.034448s] ... ok {0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object [0.011254s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify [0.064811s] ... ok {0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise [0.011817s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node [0.059612s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state [0.094153s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation [0.086994s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot [0.083271s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error [0.232976s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type [0.064912s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach [0.104625s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail [0.078325s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure [0.094237s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state [0.176620s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits [0.119280s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid [0.062747s] ... ok {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker [0.013371s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node [0.060993s] ... ok {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers [0.013480s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state [0.057198s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout [0.092564s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits [0.008400s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits [0.007389s] ... ok {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties [0.128551s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 [0.067188s] ... ok {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported [0.059303s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state [0.155723s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 [0.066275s] ... ok {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value [0.088954s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 [0.068608s] ... ok {1} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value [0.072132s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 [0.067798s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state [0.161007s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector [0.056579s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 [0.068202s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 [0.061959s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type [0.052402s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state [0.155733s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on [0.056035s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance [0.052378s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update [0.063100s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found [0.048187s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed [0.082954s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_old [0.214707s] ... ok {3} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up [0.009194s] ... ok {3} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class [0.007922s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid [0.019028s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked [0.218066s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node [0.036974s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name [0.017764s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist [0.017875s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list [0.025603s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node [0.031428s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid [0.016241s] ... ok {3} ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null [0.023591s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method [0.167662s] ... ok {3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 [0.089404s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error [0.099199s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked [0.060921s] ... ok {3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node [0.115438s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc [0.026662s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap [0.008372s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True [0.031440s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting_old [0.511311s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false [0.012336s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation [0.016333s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node [0.012200s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup [0.015810s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector [0.012216s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target [0.013441s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean [0.014228s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods [0.012567s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties [0.039416s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic [0.026240s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver [0.021265s] ... ok {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions [0.280220s] ... ok {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns [0.012478s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware [0.015217s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version [0.013914s] ... ok {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old [0.051023s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits [0.022006s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device [0.016235s] ... ok {3} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate [0.024464s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach [0.012813s] ... ok {3} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist [0.018288s] ... ok {3} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list [0.039547s] ... ok {0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value [0.058534s] ... ok {3} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist [0.024341s] ... ok {3} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list [0.023420s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg [0.046618s] ... ok {3} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist [0.020097s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id [0.013231s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist [0.017645s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state_old [0.477710s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported [0.047314s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid [0.015891s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht [0.023534s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor [0.014722s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated [0.068015s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true [0.016479s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state [2.707497s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors [0.019659s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core [0.052152s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces [0.017044s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state [0.035220s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface [0.019741s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid [0.018332s] ... ok {0} ironic.tests.unit.conductor.test_steps.ValidateDeployTemplatesTestCase.test_error [0.050740s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted [0.021155s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback [0.010767s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler [0.009642s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found [0.020242s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected [0.231726s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty [0.022786s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock [0.024299s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception [0.019381s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists [0.025823s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire [0.028742s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist [0.020544s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set [0.143064s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist [0.020726s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm [0.023849s] ... ok {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait [0.022287s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception [0.019516s] ... ok {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty [0.022351s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after [0.021588s] ... ok {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist [0.018804s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception [0.024717s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated [0.016257s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid [0.011225s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails [0.021515s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists [0.008488s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error [0.008627s] ... ok {0} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler [0.008634s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler [0.011628s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name [0.045659s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail [0.008563s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call [0.008884s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full [0.222088s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker [0.011813s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error [0.008733s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found [0.046667s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker [0.019881s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset [0.202231s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error [0.019648s] ... ok {1} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout [0.056812s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object [0.014622s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid [0.055347s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise [0.015615s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid [0.025772s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track [0.050886s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node [0.024034s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning [0.026177s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks [0.058574s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off [0.085995s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found [0.013522s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at [0.027957s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false [0.054417s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at [0.025549s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid [0.016240s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on [0.081781s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags [0.029236s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean [0.055057s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist [0.019665s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false [0.022577s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid [0.018286s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list [0.030619s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden [0.085194s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false [0.051329s] ... ok {3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid [0.023431s] ... ok {3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist [0.018877s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state [0.360409s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true [0.058496s] ... ok {3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port [0.040369s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id [0.016596s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance [0.107876s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id [0.037780s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync [0.074242s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid [0.021056s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target [0.017688s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id [0.018410s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list [0.023603s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state [0.106165s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed [0.208842s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted [0.073245s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist [0.018959s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state [0.075542s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist [0.044583s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target [0.022099s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex [0.027664s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address [0.021162s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach [0.157160s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state [0.084812s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip [0.019267s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info [0.056400s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict [0.097086s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on [0.155636s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance [0.473295s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning [0.088446s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver [0.025131s] ... ok /usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: u"" 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) {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data [0.054405s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state [0.110233s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false [0.062278s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected [0.033987s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup [0.074575s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures [0.091514s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify [0.185103s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate [0.052111s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked [0.034651s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy [0.108637s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid [0.051613s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout [0.124105s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties [0.025841s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device [0.045677s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target [0.065504s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked [0.031319s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid [0.049258s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_with_smartnic_port [0.097526s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid [0.059290s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot [0.079800s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip [0.076123s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info [0.019148s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults [0.020517s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos [0.016893s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout [0.084028s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type [0.007930s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type [0.007423s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing [0.007642s] ... ok {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async [0.153437s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced [0.083215s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces [0.490978s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 [0.056030s] ... ok {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found [0.083787s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 [0.055315s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node [0.056019s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated [0.077785s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 [0.053900s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance [0.077356s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints [0.071903s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 [0.018169s] ... ok {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported [0.105371s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 [0.053060s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug [0.031333s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps [0.015965s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state [0.090390s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 [0.053608s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config [0.056391s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 [0.056681s] ... 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. {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full [0.164823s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail [0.055321s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 [0.054801s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure [0.113768s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password [0.029345s] ... ok {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach [0.051116s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 [0.055780s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_boot_setting_failure [0.052015s] ... ok {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked [0.034818s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 [0.050327s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_nic_setting_failure [0.064361s] ... ok {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent [0.050157s] ... ok {2} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification [0.017064s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped [0.009758s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid [0.021797s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync [0.010950s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False [0.011560s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true [0.015844s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state [0.012804s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs [0.064422s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 [0.078000s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean [0.012139s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue [0.012404s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports [0.231718s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device [0.013098s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods [0.013215s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets [0.064364s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors [0.013885s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices [0.012402s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked [0.054762s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail [0.070269s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat [0.015327s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_bios [0.021241s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi [0.013174s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions [0.012229s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version [0.013578s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_not_persistent [0.023970s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions [0.015635s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version [0.013091s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device [0.036483s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid [0.012834s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode [0.028709s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode [0.012524s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config [0.012990s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node [0.012372s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port [0.012287s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup [0.012227s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_job_not_scheduled [0.029446s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list [0.014891s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs [0.034101s] ... ok {2} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok [0.052819s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail [0.052772s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... 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 {2} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps [0.049616s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false [0.016176s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad [0.007795s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value [0.017319s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_clean [0.100842s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps [0.045918s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value [0.032394s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance [0.326067s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg [0.046320s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_deploy [0.079943s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name [0.059757s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id [0.018668s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps [0.045852s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found [0.089646s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid [0.031377s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist [0.021283s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps [0.058620s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name [0.020494s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_deploy [0.087561s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_user_steps [0.048618s] ... ok {0} ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions [0.036164s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps [0.054384s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_deploy [0.089035s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists [0.060148s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state [0.039186s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps [0.094429s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on_timeout [0.050291s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 [0.026181s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates [0.056480s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps [0.026290s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config [0.018874s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config [0.017644s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB [0.178053s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported [0.328164s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config_fail [0.018490s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist [0.019728s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits [0.053733s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs [0.018384s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist [0.024524s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core [0.048977s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk [0.018423s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid [0.016201s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis [0.015446s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync [0.100889s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported [0.051872s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state [0.044927s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_cleaning_foreign_drives [0.097038s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found [0.015994s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate [0.019198s] ... ok {2} ironic.tests.unit.conductor.test_steps.ValidateDeployTemplatesTestCase.test_ok [0.051153s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg [0.008623s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override [0.017683s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once [0.011322s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable [0.010564s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor [0.019886s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock [0.016294s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable [0.009980s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify [0.009426s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods [0.122975s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_clean [0.083951s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock [0.021622s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor [0.021033s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid [0.015698s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy [0.023285s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception [0.062293s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception [0.039898s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size [0.121794s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver [0.022650s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception [0.024122s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails [0.021253s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook [0.020400s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods [0.199274s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names [0.161712s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name [0.019672s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock [0.025449s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks [0.110092s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found [0.014866s] ... ok {2} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout [0.010198s] ... ok {2} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup [0.008624s] ... ok {2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying [0.008527s] ... ok {2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual [0.008416s] ... ok {2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown [0.008674s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace [0.025900s] ... ok {2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout [0.008381s] ... ok {2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc [0.009903s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args [0.021796s] ... ok {2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error [0.008690s] ... ok {2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler [0.009106s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed [0.013525s] ... ok {2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error [0.008620s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate [0.026251s] ... ok {2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test__notify_conductor_resume_operation [0.050997s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_phyisical_disks [0.125982s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async [0.204867s] ... ok {2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true [0.033544s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag [0.076782s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change [0.086408s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported [0.047272s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id [0.035580s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error [0.064669s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate [0.035633s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist [0.020702s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error [0.079082s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state [0.084365s] ... ok {3} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode [0.086662s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found [0.020320s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists [0.037746s] ... ok {3} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_validate [0.041920s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist [0.019935s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate [0.021300s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed [0.073032s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list [0.052219s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification [0.009772s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification [0.021795s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node [0.015156s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid [0.029889s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc [0.020219s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification [0.021461s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits [0.013720s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state [0.077929s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id [0.044134s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation [0.013575s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node [0.013605s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue [0.013958s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found [0.040877s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru [0.013728s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information [0.013715s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify [0.067029s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties [0.013283s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description [0.029031s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache [0.027680s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist [0.027670s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver [0.027658s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify [0.078835s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters [0.039416s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver [0.025317s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action [0.013556s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node [0.025132s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces [0.013439s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message [0.028239s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off [0.076427s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits [0.007981s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception [0.053940s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node [0.038521s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid [0.035999s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 [0.050296s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_driver_steps [0.059447s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid [0.038732s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 [0.049604s] ... ok {2} ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts [0.011085s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated [0.034615s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_steps [0.057093s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate [0.024893s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision [0.024573s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found [0.015103s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted [0.060963s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision [0.028270s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid [0.025273s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates [0.055810s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node [0.025355s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address [0.017818s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception [0.055560s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid [0.017105s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty [0.023105s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid [0.021951s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address [0.017931s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg [0.058177s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist [0.017336s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id [0.018079s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist [0.017858s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps [0.055643s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup [0.018634s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address [0.020184s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found [0.021605s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps [0.076247s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg [0.008125s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port [0.029229s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default [0.157701s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released [0.010920s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable [0.010113s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check [0.013103s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid [0.021075s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state [0.011040s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state [0.011129s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist [0.018956s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list [0.030284s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state [0.009130s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources [0.008964s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid [0.017652s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception [0.021190s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity [0.030687s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state [0.027118s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception [0.023604s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id [0.030353s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields [0.017090s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock [0.023156s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception [0.020656s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid [0.019389s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted [0.023355s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success [0.026583s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found [0.018032s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist [0.020931s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id [0.031148s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm [0.049397s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock [0.008522s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception [0.009303s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id [0.031284s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex [0.017154s] ... ok {2} ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model [0.014729s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid [0.017295s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning [0.009021s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail [0.008909s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait [0.008524s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error [0.009544s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id [0.023289s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout [0.009925s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc [0.010234s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state [0.009771s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false [0.011059s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid [0.025016s] ... ok {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp [0.010808s] ... ok {2} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero [0.091773s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker [0.009312s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error [0.008751s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception [0.018947s] ... ok {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_config_false [0.054628s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_extra [0.071369s] ... ok {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat [0.069241s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception [0.064064s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on [0.063549s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant [0.051750s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true [0.053143s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp [0.050880s] ... ok {2} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes [0.254661s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception [0.052119s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port [0.058205s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid [0.051907s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi [0.063006s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log [0.067251s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync [0.074089s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor [0.181693s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning [0.068070s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off [0.086508s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port [0.081224s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node [0.155151s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach [0.087319s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list [0.020518s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist [0.018408s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_soft_poweroff_retry [0.077797s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting [0.052110s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list [0.028067s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists [0.013869s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes [0.028628s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting [0.052168s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance [0.061065s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list [0.019677s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode [0.053992s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor [0.045813s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance_deprecated [0.060047s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht [0.020561s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht [0.017339s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups [0.018947s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req [0.049297s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars [0.017269s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach [0.082725s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor [0.031470s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces [0.017490s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create [0.013182s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 [0.063818s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables [0.055867s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name [0.015448s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id [0.018634s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list [0.020552s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file [0.058543s] ... ok {2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist [0.018287s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 [0.083987s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook [0.045320s] ... ok {2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists [0.048428s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override [0.017747s] ... ok {2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist [0.018269s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug [0.017113s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 [0.062340s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config [0.052293s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 [0.065403s] ... 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.039685s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 [0.062888s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 [0.056410s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client [0.118130s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port [0.016225s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol [0.015798s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host [0.016185s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix [0.063692s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path [0.015697s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port [0.016144s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create [0.053272s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username [0.038714s] ... ok {2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit [0.370914s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus_without_ht_enabled [0.042951s] ... ok {2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found [0.020165s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock [0.076725s] ... ok {2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist [0.018434s] ... ok {2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists [0.020276s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail [0.047814s] ... ok {2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits [0.023964s] ... ok {2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit [0.029425s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk [0.063673s] ... ok {2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits [0.023812s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list [0.022804s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags [0.010964s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist [0.015210s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports [0.063214s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail [0.021653s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses [0.048289s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue [0.024847s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe [0.018523s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list [0.051399s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode [0.032606s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found [0.012824s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable [0.021516s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults [0.028454s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change [0.021861s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection [0.025049s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_drac_boot_device [0.024673s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable [0.023054s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision [0.026042s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation [0.031293s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_clear_job_queue [0.047962s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node [0.035757s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... SKIPPED: Backend 'postgresql' 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.TestWalkVersions.test_migrate_up_with_data [0.010680s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info [0.041740s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails [0.032966s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check [0.014662s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties [0.016863s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create [0.025438s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node [0.037919s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_known_good_state [0.048489s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid [0.020577s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node [0.024351s] ... ok {2} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name [0.017096s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation [0.026389s] ... ok {2} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode [0.020963s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac [0.047873s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist [0.020956s] ... ok {2} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist [0.021757s] ... ok {2} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id [0.017696s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc [0.036259s] ... ok {2} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted [0.024502s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device [0.066432s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted [0.033196s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id [0.018642s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found [0.021108s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted [0.029322s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict [0.036223s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id [0.019597s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_clean [0.076438s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address [0.021108s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation [0.021879s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid [0.017089s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id [0.017745s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node [0.038866s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_deploy [0.065586s] ... ok {2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid [0.019186s] ... ok {2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id [0.017345s] ... ok {2} ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base [0.008215s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated [0.046451s] ... ok {2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp [0.007286s] ... ok {2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error [0.035637s] ... ok {2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp [0.007683s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_clean [0.094027s] ... ok {2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp [0.007256s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db [0.067129s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs [0.018067s] ... ok {2} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup [0.055054s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on [0.048916s] ... ok {2} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning [0.052317s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state [0.051075s] ... ok {2} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception [0.051884s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail [0.048537s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes [0.171963s] ... ok {2} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses [0.051011s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old [0.036830s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout [0.050206s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only [0.047171s] ... ok {2} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup [0.064854s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version [0.068305s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_root_only [0.026284s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist [0.021307s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration [0.026437s] ... ok {2} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake [0.064079s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting [0.029410s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level [0.035065s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist [0.031395s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up [0.049372s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb [0.026407s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis [0.030705s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_with_config_job [0.028722s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist [0.028268s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot [0.016985s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist [0.016244s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy [0.061619s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers [0.016890s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks [0.016980s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht [0.032262s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority [0.048099s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht [0.024247s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online [0.019440s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps [0.047651s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors [0.020824s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled [0.081674s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces [0.043494s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails [0.017484s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found [0.017269s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks [0.079373s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port [0.089066s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor [0.023826s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps [0.028104s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down [0.049550s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name [0.025431s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level [0.088228s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match [0.024461s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning [0.050020s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name [0.022412s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra [0.027764s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_with_smartnic_port [0.049084s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add [0.022811s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_deploy [0.092709s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all [0.021328s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate [0.051629s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag [0.031186s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps [0.031747s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks [0.058281s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist [0.020847s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path [0.015853s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found [0.025406s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter [0.016629s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_mode [0.048931s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook [0.016097s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags [0.035852s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate [0.026745s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints [0.059195s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing [0.016127s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags [0.033300s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags [0.041556s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config [0.052683s] ... ok ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to commit the pending BIOS changes for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail [0.049435s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config [0.050414s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol [0.015998s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus [0.043615s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_UEFI_boot_mode [0.047056s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties [0.021812s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware [0.064752s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_cpu [0.046397s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job [0.017264s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail [0.017761s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix [0.017373s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi [0.018697s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device [0.022596s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device [0.020126s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit [0.469143s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail [0.019603s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode [0.020114s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting [0.018795s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs [0.022209s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices [0.038667s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update [0.035495s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status [0.031972s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes [0.016816s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail [0.039705s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off [0.049197s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 [0.027434s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all [0.026468s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb [0.026662s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config_fail [0.018775s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config [0.020936s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail [0.018751s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail [0.017782s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail [0.017647s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit [0.471938s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail [0.043446s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait [0.077570s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved [0.074143s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id [0.042319s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist [0.020662s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit [0.022821s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change [0.071805s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits [0.046143s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid [0.031547s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible [0.016771s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks [0.091468s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing [0.022750s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists [0.019068s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate [0.019115s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits [0.011636s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers [0.084468s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node [0.031323s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance [0.045977s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid [0.025058s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks [0.073040s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_clean [0.082876s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_device [0.047940s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters [0.152858s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties [0.043254s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description [0.036908s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols [0.041387s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_devices [0.059763s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node [0.034916s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi [0.058037s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release [0.040990s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail [0.056347s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node [0.053608s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate [0.045320s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device [0.063060s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits [0.035354s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device_fail [0.056256s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node [0.031011s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid [0.028853s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_fail [0.062541s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup [0.027263s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist [0.028817s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name [0.021468s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist [0.021586s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name [0.024942s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid [0.021282s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address [0.022658s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address [0.022865s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist [0.022883s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id [0.022948s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector [0.024478s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list [0.030095s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector [0.032384s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target [0.024622s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id [0.028805s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp [0.007831s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_extra [0.060801s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info [0.062215s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails [0.058920s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake [0.066543s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts [0.058031s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy [0.083818s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step [0.258351s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps [0.071478s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare [0.095431s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_force_reboot [0.091171s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port [0.060985s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate_not_iwdi_netboot [0.078417s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt [0.033398s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url [0.075562s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail [0.022428s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique [0.020376s] ... 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. {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config_fail [0.067643s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot [0.063138s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info [0.019979s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode [0.054371s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_empty_list [0.056365s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk [0.070935s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs [0.020486s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail [0.019888s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix_invalid [0.024632s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom [0.023284s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent [0.022329s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list [0.029635s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list [0.022520s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_fail [0.031068s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device [0.046993s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data [0.059374s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job [0.085372s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_clean [0.088255s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties [0.019711s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_timeout [2.395082s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_2_disk_and_raid_level_1 [0.030870s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level [0.030379s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate [0.073372s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_pending_delete [0.030418s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_without_config_job [0.035227s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail [0.020210s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config [0.020940s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail [0.019806s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_realtime [0.019615s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk [0.021015s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail [0.020810s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks [0.033566s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_delete_existing [0.109127s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space [0.087168s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_deploy [0.105843s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 [0.102571s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks [0.105886s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data [0.052727s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot [5.268294s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes [0.054610s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_fail [0.060771s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail [0.074426s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_timeout [2.885964s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties [0.045577s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_supported_power_states [0.038714s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.018170s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.017086s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary [0.017092s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_get_properties [0.037112s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_boot_type_order [0.050403s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying [0.073063s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry [4.089113s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning [0.088145s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info [0.020298s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy [0.086663s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning [0.083544s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying [0.055468s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying [0.080266s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter [0.041970s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error [0.040075s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy [0.078395s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception [0.054506s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying [0.083904s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false [0.050550s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create_use_webserver_true_ramdisk_webserver [0.069978s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning [0.079060s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url [0.063453s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_object_name [0.016645s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning [0.078041s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_recreate_boot_iso_use_webserver [0.070074s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info [0.018528s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying [0.095589s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter [0.051796s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_uuid [0.072795s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_exc [0.054773s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_whole_disk_image [0.121969s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_no_boot_iso [0.102892s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on [0.085340s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create [0.092012s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.077450s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_unsupported_url [0.076968s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios [0.100428s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_InvalidParam [0.066959s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info [0.064495s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume [0.119733s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info [0.062514s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance [0.065135s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.121341s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.087755s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.070020s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local [0.137167s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.145537s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting [0.249466s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate [0.094233s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk [0.052398s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_glance [0.091833s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.076850s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.069449s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.112029s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance [0.073550s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance [0.074224s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name [0.027088s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.114285s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume [0.054299s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image [0.087906s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_webserver [0.066026s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver [0.069494s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails [0.022117s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.067453s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia [0.019422s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails [0.019793s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found [0.079215s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices [0.052277s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server [0.022044s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile [0.025164s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios [0.052369s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail [0.058510s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state [0.352608s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail [0.346491s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported [0.065714s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift [0.039262s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str [0.020266s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.055235s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy [0.080038s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported [0.054633s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown [0.076590s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia [0.059715s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_true [0.061691s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password [0.023105s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters [0.056764s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false [0.018494s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift [0.064441s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist [0.056719s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode [0.066272s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params [0.017225s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address [0.016648s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate [0.217185s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware [0.010154s] ... 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.010028s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image [0.028478s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift [0.029688s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift [0.028920s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me [0.042358s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum [0.028285s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component [0.014954s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me [0.023989s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes [0.007725s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to [0.071415s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok [0.109648s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties [0.060261s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok [0.088085s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok [0.075637s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict [0.018265s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok [0.020927s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail [0.018657s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 [0.088209s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format [0.024598s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty [0.019188s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd [0.090822s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available [0.056016s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy [0.034932s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_swift_error [0.078392s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios [0.058231s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license [0.064437s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot [0.056998s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed [0.063803s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail [0.061690s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys [0.062226s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported [0.057826s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties [0.062487s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok [0.070046s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default [0.060565s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device [0.066090s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo [0.074272s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok [0.061637s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true [0.058141s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties [0.074051s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth [0.073599s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth [0.082435s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy [0.097711s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean [0.085171s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy [0.069593s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean [0.099802s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean [0.070021s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy [0.114691s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy [0.095352s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy [0.097242s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean [0.080920s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component [0.072243s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_swift_url [0.107720s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_without_component [0.081236s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate [0.098143s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed [0.057999s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail [0.029506s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state [0.049134s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state [0.065891s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok [2.264484s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail [2.197870s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off [0.059725s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail [0.055245s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties [0.048716s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout [0.063928s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying [0.097056s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning [0.079974s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying [0.094528s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning [0.087904s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning [0.102056s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying [0.097451s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying [0.063838s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying [0.062085s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning [0.081184s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage [0.054889s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href [0.050460s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input [0.100910s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed [0.079536s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail [0.062953s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok [0.063139s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok [0.063130s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail [0.089972s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok [0.066241s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option [0.022548s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing [0.021927s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok [0.022309s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image [0.061298s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue [0.054556s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed [0.042844s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild [0.041917s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception [0.018913s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok [0.021633s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk [0.064852s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_iscsi [0.071283s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.092621s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.087509s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.092575s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true [0.106707s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.092365s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_image_source [0.048825s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false [0.050992s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot [0.061251s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk [0.063139s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false [0.073847s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying [0.081415s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout [3.807638s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning [0.989593s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states [0.054389s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_glance_image [0.071737s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate [0.040536s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue [0.072959s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning [0.074682s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.063484s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying [0.075044s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying [0.077460s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap [0.111157s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance [0.058030s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning [0.071432s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi [0.100114s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning [0.095515s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask [0.093979s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying [0.094816s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state [0.055504s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn [0.094541s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance [0.054438s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso [0.055617s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port [0.082968s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable [0.017543s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port [0.017697s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.016900s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue [0.054838s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username [0.016973s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage [0.050780s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware [0.044899s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox [0.049031s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception [0.059271s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input [0.016822s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty [0.048666s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error [0.050529s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket [0.054548s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed [0.050177s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok [0.049848s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name [0.016726s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok [0.017450s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok [0.016783s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware [0.314559s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok [0.075513s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids [0.045758s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap [0.043235s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters [0.062109s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties [0.042221s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_localboot [0.082144s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off [0.167801s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_missing_root_uuid [0.057082s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed [0.051556s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped [0.053336s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false [0.101252s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng [0.059098s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok [0.055254s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe [0.224184s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node [0.022137s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok [0.041154s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false [0.420597s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [0.046877s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.103723s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.125237s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.118045s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk [0.040702s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_image_kernel_ramdisk_props [0.043604s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good [0.041613s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios [0.060376s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios [0.066679s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local [0.074042s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot [0.062611s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing [0.073971s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values [0.016860s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist [0.206253s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume [0.054161s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports [0.108847s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance [0.096021s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port [0.093832s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false [0.007921s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client [0.017114s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report [0.018130s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable [0.017968s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info [0.016847s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_empty_snmp_security [0.017466s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method [0.016756s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method [0.017369s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port [0.016859s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version [0.020172s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default [0.016805s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception [0.137534s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false_and_existing_cap [0.043786s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate [0.039748s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok [0.050199s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config [0.052997s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate [0.040355s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config [0.038560s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status [0.024151s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config [0.023934s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot [0.053858s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot [2.079808s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout [0.049575s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail [0.039785s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile [0.039247s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level [0.039211s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 [0.016715s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 [0.016322s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type [0.042366s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks [0.040998s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks [0.040573s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks [0.039528s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 [0.043277s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks [0.039757s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 [0.039707s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron [0.050220s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet [0.080757s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 [0.077989s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets [0.053179s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first [0.056897s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first [0.058942s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port [0.053357s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout [2.100804s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client [1.396111s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties [0.214734s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail [0.056178s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on [0.088512s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id [0.056068s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout [0.093152s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports [0.138695s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none [0.064081s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives [0.064133s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 [0.026602s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports [0.139219s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient [0.061698s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration [0.080547s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports [0.137812s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address [0.055947s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat [0.093360s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif [0.052040s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports [0.070912s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports [0.055320s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 [0.080847s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach [0.055048s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node [0.066510s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port_extra [0.077459s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings [0.060458s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup [0.072204s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent [0.055452s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup_extra [0.074813s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node [0.061688s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port [0.547810s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client [0.578047s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup [0.036523s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif [0.066914s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_extra [0.051741s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info [0.051897s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached [0.051604s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup [0.025700s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup [0.152253s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_extra_vif_port_id [0.051544s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none [0.054157s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup [0.149233s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id [0.051687s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network [0.049684s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc [0.059173s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports [0.058494s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node [0.064953s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network [0.052104s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports [0.056587s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach [0.063346s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports [0.065916s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet [0.060512s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node [0.099118s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup [0.059622s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached [0.022260s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg [0.055791s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning [0.054972s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_extra [0.072316s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net [0.048124s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports [0.074235s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network [0.053960s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate [0.060457s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_local [0.068169s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node [0.075514s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg [0.057348s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc [0.079998s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail [0.068241s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach [0.112970s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_int_info [0.067879s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties [0.028901s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups [0.060914s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network [0.081040s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true [0.051535s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network [0.057323s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network [0.077244s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic [0.058116s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks [0.078154s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue [0.062318s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate [0.050401s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed [0.050821s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach [0.049420s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network [0.051020s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks [0.054894s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning [0.082366s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list [0.051874s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail [0.050144s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning [0.094841s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios [0.105079s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs [0.072652s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop [0.106305s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported [0.055294s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning [0.082450s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying [0.097876s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties [0.039810s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error [0.017002s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying [0.079652s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__append_filename_param_without_qs [0.037593s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__append_filename_param_with_filename [0.038792s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_specific [0.042339s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_iso_image_bios [0.042667s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_unknown [0.041631s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew [0.044493s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__publish_image_swift [0.064709s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device [0.041141s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom [0.040950s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_deploy_iso [0.038833s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc [0.038803s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__publish_image_local_copy [0.053474s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy [0.039434s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy [0.039193s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__unpublish_image_swift [0.054081s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option [0.075858s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.049497s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue [0.037529s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy [0.037796s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot [0.110700s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue [0.037432s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing [0.041263s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy [0.070054s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode [0.056837s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_uefi_boot [0.042089s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb [0.060945s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties [0.037574s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu [0.044124s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb [0.057066s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok [0.054025s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics [0.079874s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate [0.040474s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power [0.040053s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices [0.038500s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error [0.017381s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode [0.207983s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error [0.016898s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device [0.041929s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties [0.037472s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail [0.091551s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data [0.072750s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi [0.051944s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device [0.050339s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail [0.088358s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency [0.049497s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail [0.086194s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state [0.040251s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_not_reached [30.494831s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_power_state [0.069815s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info [0.022433s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate [0.056346s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning [0.109504s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot [4.957983s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying [0.083638s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning [0.057991s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_basic_session_caching [0.108484s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning [0.059493s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying [0.057291s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_new_session_address [0.103911s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings [0.049304s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties [0.044698s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_on_webserver [0.031727s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_session_reuse [0.107296s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info [0.028711s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_MissingParam [0.057864s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id [0.029583s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.028624s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance [0.065490s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.070053s] ... ok {2} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation [0.098440s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso [0.074670s] ... ok {2} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes [0.087210s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_without_boot_iso [0.059830s] ... ok {2} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal [0.107824s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.076915s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered [0.084550s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing [0.087734s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios [0.059672s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps [0.076962s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.074743s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue [0.087080s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.090304s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot [0.079184s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_webserver_exc [0.073864s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on [0.082189s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.060443s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy [0.097800s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume [0.075730s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift [0.031324s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails [0.030025s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_proxies [0.100694s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server [0.177108s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_did_start [0.166824s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_no_cafile [0.024419s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp [0.022666s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_is_done [0.055629s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported [0.057013s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_multiple_commands [0.061046s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc [0.061041s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_other_commands [0.080454s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc [0.046234s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode [0.061386s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false [0.142660s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode [0.075068s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties [0.024318s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists [0.058947s] ... ok {3} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state [42.478917s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties [0.056052s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum [0.019437s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume [0.114416s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation [0.031755s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file [0.018858s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false [0.063185s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile [0.022529s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port [0.019568s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises [0.019417s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol [0.019194s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target [0.017599s] ... 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.024980s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false [0.126888s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware [0.029297s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me [0.024047s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails [0.008610s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor [0.007398s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url [0.007645s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info [0.014673s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component [0.008553s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component [0.008301s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net [0.123739s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails [0.075149s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file [0.070709s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode [0.008709s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_capabilities_as_string [0.136721s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero [0.085250s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_reraise [0.081953s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability [0.033186s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints [0.063550s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format [0.034202s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok [0.023878s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok [0.020714s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail [0.051429s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory [0.051409s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error [0.076316s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot_fail [0.057789s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook_no_hook_registered [0.028818s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern [0.063750s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_default [0.048765s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern [0.067182s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_never [0.048545s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern [0.062883s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_on_non_software_raid [0.054823s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image [0.060210s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd [0.093257s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean [0.040635s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_clean_version_mismatch_fail [0.062601s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported [0.037472s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_fail [0.051225s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok [0.027657s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook [0.068838s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_environment_error [0.078672s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails [0.061365s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_unknown_exception [0.073806s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_deprecated [0.068231s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_with_logs [0.066725s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_doesnt_complete [0.067177s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_without_logs [0.062081s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_fails [0.068658s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key [0.067089s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_exc [0.062811s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent [0.072069s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling [0.070962s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi [0.070207s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event [0.066300s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password [0.080962s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok [0.093704s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed [0.086279s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort [0.304741s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean [0.088999s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy [0.082234s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_records_fast_track [0.153124s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean [0.081739s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean [0.079577s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy [0.084566s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail [0.062557s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_with_reservation [0.113404s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step [0.058478s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command [0.008594s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code [0.008857s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post [0.008728s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body [0.007790s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue [0.008607s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_custom_port [0.008655s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout [0.009902s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts [0.010178s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios [0.008373s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir [0.011322s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url [0.011254s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf [0.011636s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file [0.011448s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir [0.025060s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid [0.026902s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout [0.024516s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled [0.026828s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params [0.131141s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf [0.019888s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step [0.052365s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_running [0.049476s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_missing_steps [0.059544s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error [0.055580s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all [0.037380s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one [0.037197s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all [0.037668s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch [0.011596s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch [0.012087s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id [0.048679s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id [0.048671s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id_extra [0.051924s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path [0.011611s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source [0.017118s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel [0.016347s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail [0.018813s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_config [0.018314s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs [0.267316s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff [0.203837s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label [0.008145s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false [0.007526s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_invalid [0.007540s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities [0.010242s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info [0.007725s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_always_logout_and_delete_iscsi [0.013115s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device_raises [0.008916s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_image_exceeds_root_partition [0.015524s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_uefi [0.019810s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_ephemeral [0.021531s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_swap [0.020164s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises [0.023933s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises_during_cleanup [0.026239s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_verify_and_update [0.013266s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_raises [0.009348s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image [0.030153s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_partition_image [0.073213s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image [0.084142s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image [0.063898s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw [0.087347s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability [0.016407s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc [0.084755s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image [0.042487s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel [0.019640s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail [0.014948s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up [0.014698s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large [0.010923s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size [0.009762s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted [0.009465s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw [0.012682s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master [0.011732s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date [0.010629s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception [0.048995s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls [0.019541s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 [0.015104s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked [0.010344s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool [0.014008s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool [0.019728s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail [0.015879s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool [0.024489s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass [0.018361s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool [0.015800s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail [0.078985s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok [0.077558s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading [0.024931s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok [0.110037s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail [0.085274s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev [0.069644s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices [0.066815s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device [0.069748s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok [0.070923s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi [0.066141s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off [0.062501s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off [0.060621s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on [0.064284s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state [0.057100s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok [0.059242s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail [0.059408s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail [0.059946s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok [0.050545s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok [0.052336s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good [0.047939s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail [0.047781s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes [0.041749s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.024982s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code [0.020796s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username [0.021319s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username [0.021317s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception [0.018790s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception [0.018331s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password [0.018841s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on [4.094468s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception [0.023892s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials [0.019618s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version [0.018697s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout [0.069276s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key [0.018615s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars [0.018521s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password [0.018591s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error [0.019833s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout [0.069883s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off [0.019743s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.022787s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout [0.065540s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.021333s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate [0.040115s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail [0.049971s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd [0.046615s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password [0.060766s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning [0.109843s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail [0.051301s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying [0.098604s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk [0.065151s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties [0.039930s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying [0.087035s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_localboot [0.074996s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning [0.083273s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_localboot_active [0.085571s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying [0.078554s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot [0.083438s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid [0.058398s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying [0.102318s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_default [0.093183s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning [0.091096s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso [0.056916s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_false [0.095817s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings [0.059799s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset [0.054901s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_never [0.095208s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail [0.057436s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok [0.065629s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name [0.018394s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root [0.020679s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share [0.020053s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share [0.019685s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid [0.059197s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok [0.020157s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok [0.019141s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file [0.082661s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception [0.062521s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false [0.458530s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy [0.059283s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.092847s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue [0.062404s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance [0.060713s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue [0.084816s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue [0.073861s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.095494s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_localboot_active [0.095894s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.118041s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.040459s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props [0.041323s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.157954s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_clean_up [0.051167s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_fast_track [0.084930s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid [0.127280s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step [0.048102s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_clean_steps [0.058673s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_always [0.186516s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down [0.090794s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image [0.047767s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy [0.086490s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_default [0.171663s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_never [0.162736s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_unexpected_fail [0.275849s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_okay [0.079586s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_boot_option_default [0.016618s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_cpu_arch [0.017629s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_localboot [0.017396s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_not_specified [0.016457s] ... ok {2} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_fail_no_api_url [0.039989s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios [0.009185s] ... 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. {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name [0.014318s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device [0.008139s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance [0.062263s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry [0.050927s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state [0.062188s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_active [0.077079s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true [0.646030s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_always [0.094804s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_swift [0.139761s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.135183s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_without_copy [0.142175s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false [0.422612s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_glance_conn_problem [0.117181s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_glance_image_doesnt_exists [0.059961s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_invalid_trusted_boot_value [0.059971s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel [0.055230s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_secure_boot_false [0.081967s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true [0.364878s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_with_secure_boot [0.081895s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_true [0.096360s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance [0.078765s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.101624s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot [0.099041s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue [0.080452s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot [0.107058s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_conn_problem [0.087124s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.049120s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.074468s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props [0.047512s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port [0.048591s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.073177s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false [0.046744s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.082664s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error [0.135350s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy_with_smartnic_port [0.239122s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc [0.131618s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error [0.078231s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_instance_ramdisk [0.141800s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate [0.058509s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_interface_mismatch [0.059816s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip [0.117733s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.057121s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.066507s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_another_boot_interface [0.039418s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties [0.070297s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry [0.050100s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community [0.021760s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err [0.028701s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine [0.023422s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties [0.050341s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off [0.013102s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects [0.012559s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset [0.013858s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off [0.012864s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off [0.012956s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap [0.063178s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on [0.015722s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off [0.020290s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver [0.015287s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero [0.054762s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off [0.016432s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off [0.013379s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on [0.013938s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on [0.013706s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off [0.012882s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on [0.019935s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config [0.080081s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail [0.061581s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok [0.065782s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios [0.263815s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk [0.260635s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status [0.052919s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail [0.061773s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning [0.050478s] ... 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.062764s] ... ok {3} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached [12.896445s] ... ok {3} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme [0.021788s] ... ok {3} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.017581s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input [0.051522s] ... ok {3} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_address [0.016581s] ... ok {3} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca [0.017998s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_object [0.029813s] ... ok {3} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath [0.025957s] ... ok {3} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.018954s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state [0.035344s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay [1.016406s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok [0.058689s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration [0.074165s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception [0.050328s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset [0.061971s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning [0.073689s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning [0.075548s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration [0.067982s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying [0.223454s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning [0.074064s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot [0.053765s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot [0.054581s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error [0.041006s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate [0.040494s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached [21.367241s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info [0.218282s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc [0.025943s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail [0.093829s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance [0.068802s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate [0.040791s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true [0.076703s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system [0.114507s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image [0.091325s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_uefi_no_glance_image [0.086818s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_url [0.071919s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address [0.193439s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi [0.051266s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_glance_partition_image [0.073743s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown [0.061292s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_non_glance_partition_image [0.069165s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors [0.054130s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy [0.071851s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure [0.064342s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception [0.053934s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume [0.102920s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target [0.076314s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets [0.075770s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume [0.154150s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root [0.051218s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate [0.049764s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk [0.129737s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password [0.061098s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password [0.058412s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off [2.086035s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port [0.079242s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image [0.162978s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout [0.060764s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting [0.051535s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state [0.060915s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning [0.050496s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list [0.046941s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 [0.061831s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port [0.110814s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 [0.067833s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down [0.103899s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover [0.353821s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning [0.060110s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets [0.127940s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false [0.060652s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.117477s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 [0.132016s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port [0.126039s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue [0.097618s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup [0.077500s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate [0.059227s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.098462s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum [0.066638s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size [0.050756s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios [0.075594s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled [0.054748s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.085195s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled [0.067409s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.076824s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook [0.064544s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot [0.079231s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_on_software_raid [0.094115s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc [0.071172s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning [0.103397s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver [0.051537s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises [0.061933s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_automated_clean_version_mismatch [0.100370s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode [0.051068s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server [0.025567s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list [0.018983s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode [0.018897s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_old_command [0.098352s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError [0.018702s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode [0.018951s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_post_clean_step_hook [0.027954s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url [0.053995s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist [0.051340s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except [0.051284s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_off_fails [0.149593s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_false [0.050968s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true [0.017972s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.017030s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first [0.997361s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.017616s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username [0.016344s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol [0.020048s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_on_fails [0.151161s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol [0.016825s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first [0.072142s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols [0.018425s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc [0.050729s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_missing_command_result [0.079997s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port [0.067042s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware [0.009417s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file [0.018555s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url [0.033898s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address [0.062982s] ... ok {3} 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.031890s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_deploy [0.099955s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver [0.029959s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id [0.063704s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver [0.045718s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components [0.008215s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter [0.008239s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_fails [0.084133s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter [0.015845s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id [0.068750s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key [0.066922s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file [0.081828s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue_fails [0.096842s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url [0.014870s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure [0.079269s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_touch_provisioning_and_url_save [0.072531s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off [0.080702s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step_in_other_step [0.056244s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 [0.077083s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step_no_steps_list [0.046042s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step [0.021777s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc [0.011301s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate [0.052128s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status [0.018313s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image [0.008317s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports [0.176429s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict [0.017499s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi [0.008946s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail [0.014394s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key [0.019398s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file [0.012542s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num [0.017212s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console [0.023556s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 [0.011417s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed [0.070184s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail [0.012270s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail [0.041994s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero [0.075348s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup [0.170533s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console [0.034131s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 [0.026506s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail [0.023861s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done [0.088074s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid [0.031369s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console [0.012927s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone [0.024095s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target [0.060415s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw [0.037273s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports [0.176593s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities_none [0.051822s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail [0.056923s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data [0.055404s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning [0.069583s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices [0.052440s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports [0.169815s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track [0.065604s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed [0.062600s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying [0.026934s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch [0.017014s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property [0.022250s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail [0.069219s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default [0.054334s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch [0.011638s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node [0.016864s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail [0.056526s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id [0.048993s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_no_parent_device [0.009022s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails [0.016045s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports [0.116449s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk [0.016998s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail [0.053815s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb [0.016230s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb [0.016701s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb [0.016200s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb [0.016575s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios [0.068368s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb [0.016042s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format [0.016465s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address [0.120110s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean [0.065342s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false [0.047987s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_invalid_component [0.052590s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true [0.047568s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images [0.018513s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports [0.115712s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail [0.021097s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild [0.046692s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure [0.135650s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state [0.207889s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure [0.085037s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never [0.072659s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception [0.082384s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide [0.070333s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true [0.008119s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_false [0.007512s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability [0.007470s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc [0.008204s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node [0.086437s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_disk_label [0.019581s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_bios [0.022027s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_bios [0.020031s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached [0.069113s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_wo_boot_option_and_wo_boot_mode [0.019832s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_ipv6_address_wrapped [0.011871s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_extra [0.023835s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info [0.031773s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning [0.070413s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image [0.187273s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing [0.079823s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_pxe_config_partition_image [0.013817s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority [0.063781s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal [0.068371s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_new_fields_is_md5 [0.153013s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup [0.067220s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target [0.093881s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network [0.075876s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network [0.065300s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [1.053373s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach [0.061388s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration [0.170023s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list [0.059163s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios [0.077742s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed [0.062297s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception [0.073061s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg [0.065174s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized [0.019100s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image_validation_fail [0.031450s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good [0.024220s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network [0.071288s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source [0.029279s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image [0.023069s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched [0.014054s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node [0.124897s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id [0.064762s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly [0.184965s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored [0.018722s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id [0.085285s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished [0.019736s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error [0.024751s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false [0.055659s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok [0.028822s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok [0.051125s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node [0.078258s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node [0.089742s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks [0.056468s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot [0.071811s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot_no_exc [0.069374s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach [0.058708s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network [0.058909s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif [0.064592s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed [0.068099s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings [0.123855s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning [0.109871s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate [0.052564s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__cleanup_floppy_image [0.055576s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__cleanup_iso_image [0.043849s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted [0.048984s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_boot_iso [0.052221s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__unpublish_image_local [0.053005s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info [0.047638s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc [0.043527s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image [0.076888s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot [0.112555s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [2.056633s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params [0.073898s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb [0.047268s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures [0.045841s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode [0.044338s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone [1.624289s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes [0.042839s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok [0.016782s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_ok [0.016104s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked [0.011767s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode [0.067747s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok [0.041055s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail [0.053694s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate [0.065378s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok [0.065316s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties [0.087302s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device [0.071500s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state [9.053398s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states [0.059801s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure [0.032097s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent [0.070736s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent [0.058804s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1 [0.053263s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good [0.054010s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate [0.070381s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok [0.052458s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail [0.063359s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok [0.054674s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot [0.056181s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok [0.051763s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail [0.059084s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes [0.053799s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.021952s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception [0.022113s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.022567s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.022367s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging [0.021964s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password [0.022034s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port [0.019196s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 [0.019075s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials [0.024619s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters [0.021859s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type [0.020337s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging [0.020326s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters [0.026746s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout [3.521813s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries [2.054999s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.045364s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.036678s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.023207s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.022417s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy [0.022758s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.022245s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd [0.047312s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console [0.054621s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail [0.050240s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir [0.050492s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port [0.038290s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console [0.052715s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user [0.048463s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console [0.052287s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid [0.059232s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false [0.099322s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true [0.098695s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.095475s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.098795s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_glance_conn_problem [0.074203s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_glance_image_doesnt_exists [0.042541s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_image_source [0.041238s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image [0.042494s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.055493s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot [0.090566s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy [0.063145s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false [0.068971s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_adopting [0.049791s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_with_smartnic_port [0.082517s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate_storage_should_write_image_false [0.043121s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size [0.049095s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_portal_port [0.017387s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_good_api_url [0.038485s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_invalid_root_device_hints [0.039351s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_file_path [0.016975s] ... ok {0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect [0.008289s] ... ok {0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue [0.007920s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.057764s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts [0.047817s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance [0.053030s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [2.061295s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot [0.067833s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.081105s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false [0.095113s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.096601s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.084142s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.159693s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.328106s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi [0.096379s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_image_doesnt_exists [0.043057s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off [1.070809s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_invalid_trusted_boot_value [0.041518s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state [0.054793s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.040955s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning [0.097650s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_fixes_and_logs_boot_option_warning [0.097985s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue [0.045276s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning [0.096522s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.056303s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.056979s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning [0.067886s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read [0.022977s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 [0.022211s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context [0.021397s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying [0.068876s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries [0.252791s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get [0.032741s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning [0.292478s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next [0.035667s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off [0.034404s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on [0.018740s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying [0.091044s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on [0.035032s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off [0.025291s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on [0.020506s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on [0.019693s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning [0.081061s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects [0.018844s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off [0.025621s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on [0.020435s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying [0.090185s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset [0.021037s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu [0.019471s] ... ok {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces [0.051836s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off [0.019358s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off [0.018381s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects [0.017396s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on [0.018434s] ... ok {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect [0.050808s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration [0.066966s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate [0.052301s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail [0.050863s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid [0.050243s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok [0.017250s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok [0.017368s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok [0.076330s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file [0.018927s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters [0.054566s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok [0.054487s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy [0.053943s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot [0.065150s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_active [0.079547s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk [0.248510s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning [0.083538s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay [1.021504s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure [0.023806s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset [0.030075s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_false [0.092882s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_true [0.095671s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.097576s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.096681s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue [0.202517s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.190206s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state [9.034373s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi [0.141545s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port [0.064373s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_trusted_boot_with_secure_boot [0.057436s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image [0.058878s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay [1.029686s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure [0.024285s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure [0.039306s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_without_secure_boot [0.082410s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off [0.015971s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off [0.020355s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off [0.016775s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off [0.068158s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_with_secure_boot [0.111197s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on [0.063896s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_with_secure_boot_false [0.109321s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure [0.061157s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot [0.063118s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_without_secure_boot [0.105479s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout [0.064996s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off [0.057163s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus [0.013610s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu [0.013075s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false [0.124060s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten [0.013135s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower [0.014574s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version [0.013361s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community [0.014081s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower [0.013176s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c [0.013475s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port [0.013766s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot [0.102863s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 [0.013285s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto [0.013039s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key [0.013620s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info [0.018159s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config [0.018954s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_non_glance_image [0.098162s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices [0.053110s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay [1.018955s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate [0.058361s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_whole_disk_image [0.095396s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail [0.054390s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot [0.052145s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi [0.136229s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout [0.051759s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power [0.055082s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate [0.050920s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict [0.008163s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port [0.128677s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description [0.007487s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid [0.008052s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key [0.007648s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable [0.007877s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only [0.007472s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo [0.008902s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority [0.007730s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only [0.007780s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps [0.009781s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata [0.007647s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config [0.009210s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper [0.011324s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip [0.105368s] ... ok {0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl [0.010573s] ... ok WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_idrac [0.049258s] ... 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.049350s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask [0.109589s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties [0.045668s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface [0.045631s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id [0.103314s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device [0.048522s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state [0.045835s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask [0.114965s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good [0.045945s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate [0.045663s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface [0.045775s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask [0.110577s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true [0.008888s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method [0.017990s] ... ok {0} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_with_no_raid [0.051128s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port [0.019375s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method [0.018286s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security [0.019616s] ... ok {0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage [0.047716s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address [0.020278s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.022047s] ... ok {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue [0.050974s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs [0.010944s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password [0.018781s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail [0.010744s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string [0.016742s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability [0.016938s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create [0.013632s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses [0.058437s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name [0.011076s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input [0.018177s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid [0.013286s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list [0.012728s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get [0.013302s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props [0.046378s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id [0.016289s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange [0.027376s] ... ok {0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas [0.011246s] ... ok {0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh [0.013601s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list [0.036679s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister [0.015942s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces [0.014282s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy [0.013335s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name [0.012882s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist [0.166256s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid [0.013581s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list [0.013454s] ... ok {0} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values [0.007765s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string [0.007436s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing [0.012220s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different [0.047068s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing [0.011992s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove [0.012538s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove [0.011943s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false [0.044861s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set [0.012341s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset [0.011869s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set [0.015609s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default [0.012278s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail [0.041636s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing [0.012912s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set [0.012156s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing [0.014301s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing [0.012178s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default [0.014382s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted [0.066045s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default [0.016252s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties [0.013191s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id [0.013802s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas [0.013585s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config [0.068569s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh [0.014517s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_release [0.013145s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found [0.013443s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found [0.013343s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed [0.083289s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh [0.054817s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload [0.011998s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload [0.016335s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload [0.013469s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties [0.059639s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid [0.008865s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled [0.022671s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated [0.022681s] ... ok {0} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one [0.020270s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception [0.074572s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict [0.007580s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat [0.007359s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 [0.007311s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 [0.007664s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes [0.007652s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions [0.008717s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad [0.008561s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_updates [0.007754s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration [0.007309s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices [0.075451s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error [0.007236s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor [0.007598s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object [0.010715s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision [0.010731s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor [0.011123s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default [0.014325s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng [0.083530s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default [0.027783s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.011826s] ... ok {0} ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_one [0.025593s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_refresh [0.018850s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported [0.011621s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.011056s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_all [0.028017s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_one [0.021637s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name [0.013336s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id [0.012989s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh [0.016903s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save [0.015063s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict [0.011745s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list [0.012969s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create [0.013289s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save [0.027494s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh [0.021858s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy [0.021364s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom [0.301455s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list [0.013543s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas [0.010941s] ... ok {0} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked [0.009323s] ... ok {0} ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute [0.009366s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe [0.266507s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_fail [0.070050s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state [0.065137s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state [0.074543s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [0.077071s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception [0.081120s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [0.076245s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state [0.089784s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate [0.045813s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 [0.018876s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 [0.018314s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 [0.019182s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk [0.024903s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks [0.047636s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config [0.055150s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config [0.041610s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets [0.086056s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed [0.053983s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets [0.080184s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 [0.079681s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup [0.062166s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free [0.063285s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail [0.069848s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup [0.157387s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports [0.141274s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports [0.138810s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports [0.053338s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports [0.081657s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports [0.099587s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address [0.077418s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach [0.058770s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure [0.063941s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port [0.025416s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup [0.025991s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port [0.024711s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif [0.050651s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra [0.053572s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup [0.052580s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise [0.048217s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node [0.095876s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network [0.203994s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network [0.019515s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate [0.051980s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network [0.056297s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network [0.056577s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node [0.067331s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id [0.055747s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_instance_uuid [0.052517s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node [0.052439s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network [0.057451s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network [0.062394s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list [0.049600s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed [0.053146s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach [0.050166s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying [0.081984s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying [0.095292s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported [0.050226s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail [0.050204s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration [0.071718s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__append_filename_param_with_qs [0.040917s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_everything [0.043146s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_not_inserted [0.042508s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_floppy_image [0.043636s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_iso_image_uefi [0.060398s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__publish_image_local_link [0.053943s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk [0.041535s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_loading_error [0.017121s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue [0.041203s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_bios_boot [0.043051s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu [0.118099s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive [0.061279s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan [0.057645s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail [0.126865s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_auto [0.084409s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_basic [0.080283s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_expire_old_sessions [0.085098s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.022827s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info [0.022204s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca [0.023967s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type [0.021903s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.034675s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficent_data [0.069058s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption [0.075049s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector [0.080413s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image [0.100587s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types [0.113538s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors [0.110515s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector [0.090122s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets [0.111946s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings [0.082801s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final [0.091173s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration [0.075946s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot [0.065512s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up [0.078814s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port [0.094546s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue [0.092922s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot [0.099075s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy [0.076244s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout [9.029823s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_empty_response [0.062908s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement [0.024701s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on [0.019108s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure [0.055955s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot [0.111469s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on [0.055343s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps [0.066088s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure [0.054615s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout [0.055838s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version [0.013884s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver [0.012490s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet [0.013347s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare [0.135055s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community [0.012447s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey [0.012276s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name [0.021532s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto [0.012616s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto [0.012172s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id [0.018371s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states [0.103906s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client [0.027540s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id [0.016866s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties [0.018504s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties [0.018271s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false [0.109802s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail [0.050556s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid [0.008475s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority [0.007933s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps [0.010328s] ... ok {2} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only [0.011011s] ... ok {2} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing [0.012625s] ... ok {2} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config [0.009667s] ... ok {2} ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat [0.009627s] ... ok {2} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl [0.007774s] ... ok {2} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl [0.010182s] ... ok {2} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl [0.010168s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_localboot [0.120942s] ... 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. {2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces [0.063027s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface [0.056445s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_localboot_ppc64 [0.117176s] ... ok {2} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces [0.056155s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies [0.049965s] ... ok {2} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces [0.053446s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false [0.045866s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb [0.048986s] ... ok {2} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces [0.053211s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http [0.016995s] ... ok {2} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces [0.053054s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot [0.053422s] ... ok {2} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios [0.055229s] ... ok {2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces [0.055379s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail [0.131713s] ... ok {2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power [0.054557s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_always [0.048102s] ... ok {2} ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces [0.050723s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid [0.047845s] ... ok {2} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method [0.049843s] ... ok {2} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods [0.054001s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail [0.012909s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name [0.009852s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local [0.014126s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift [0.023018s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail [0.017237s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false [0.067167s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string [0.016139s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode [0.015854s] ... ok {2} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh [0.014093s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail [0.280204s] ... ok {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create [0.013109s] ... ok {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete [0.012390s] ... ok {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create [0.013334s] ... ok {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete [0.012862s] ... ok {2} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid [0.010729s] ... ok {2} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id [0.012499s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_after_reboot [0.069964s] ... ok {2} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save [0.014411s] ... ok {2} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh [0.037106s] ... ok {2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create [0.012792s] ... ok {2} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce [0.007856s] ... ok {2} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value [0.007450s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_manual_clean_version_mismatch [0.073622s] ... ok {2} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value [0.007416s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type [0.008575s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type [0.007746s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing [0.012185s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set [0.012046s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove [0.012189s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook_fails [0.061760s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default [0.011901s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default [0.015206s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default [0.012315s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove [0.012467s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot [0.063698s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched [0.011982s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove [0.012362s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance [0.012083s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing [0.012464s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.011537s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition [0.111591s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove [0.062282s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing [0.011709s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set [0.012077s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing [0.011606s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove [0.011944s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure [0.011617s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_netboot [0.060379s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits [0.012556s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid [0.012980s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name [0.013466s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_list [0.013133s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field [0.015459s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off [0.067278s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail [0.014472s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits [0.017536s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning [0.015618s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_bad_command_result [0.057075s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none [0.011386s] ... ok {2} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification [0.018566s] ... ok {2} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status [0.007373s] ... ok {2} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field [0.007440s] ... ok {2} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates [0.007092s] ... ok {2} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version [0.007064s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 [0.007527s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_with_smartnic_port [0.060666s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive [0.007219s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_contains [0.007030s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old [0.007382s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same [0.014552s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned [0.009232s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails [0.073618s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned [0.028438s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns [0.007518s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_load [0.007919s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base [0.007399s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive [0.007509s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields [0.007156s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance [0.007005s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error [0.009471s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object [0.007172s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context [0.007185s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api [0.008624s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api [0.008946s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor [0.010941s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport [0.013051s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance [0.114381s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables [0.007509s] ... ok {2} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly [0.084522s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported [0.011097s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing [0.011067s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing [0.010728s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing [0.010642s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set [0.014762s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove [0.010900s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra [0.010762s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 [0.339773s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version [0.221810s] ... ok {2} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid [0.013200s] ... ok {2} ironic.tests.unit.objects.test_port.TestPortObject.test_list [0.012507s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_not_in_core_deploy_step [0.103414s] ... ok {2} ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh [0.028029s] ... ok {2} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported [0.011283s] ... ok {2} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported [0.011935s] ... ok {2} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version [0.018986s] ... ok {2} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create [0.019307s] ... ok {2} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address [0.023683s] ... ok {2} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id [0.024142s] ... ok {2} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas [0.020380s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_records_cleaning_deploying [0.141438s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy [0.026645s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists [0.026586s] ... ok {2} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas [0.020506s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue [0.084594s] ... ok {2} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh [0.024175s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json [0.010832s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url [0.010520s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail [0.009187s] ... ok {2} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id [0.022848s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps [0.009947s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloaderi_with_prep [0.009788s] ... ok {2} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none [0.015732s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image_with_configdrive [0.016849s] ... ok {2} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh [0.021030s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target [0.008546s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync [0.008538s] ... ok {2} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save [0.018459s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts [0.010227s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default [0.008953s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid [0.018508s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir [0.013488s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found [0.035806s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid [0.017555s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running [0.017379s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url [0.013315s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp [0.014117s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid [0.031199s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 [0.034432s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout [0.035115s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir [0.035505s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid [0.015340s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid [0.016299s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition [0.020350s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities [0.053988s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track [0.058307s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false [0.061648s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one [0.039858s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch [0.012002s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property [0.012790s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch [0.012061s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged [0.017253s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive [0.016813s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good [0.017346s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral [0.016789s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image [0.017289s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root [0.018835s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value [0.019823s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_instance_info_priority [0.019842s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_overridden_default_value [0.019141s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev [0.018465s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone [0.021008s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_capabilities [0.009270s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap [0.008875s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid [0.013968s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_true [0.008891s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc [0.008807s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability [0.009241s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_uefi [0.023341s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_preserve_ephemeral [0.023289s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_configdrive [0.033706s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_cpu_arch [0.022240s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_sparse [0.016914s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection [0.009805s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_partition_image [0.074444s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image [0.010923s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonsupported_image [0.072272s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw [0.095831s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_new_fields_none [0.095172s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume [0.065034s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false [0.049857s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error [0.106146s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay [0.063114s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image [0.022526s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href [0.014658s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image [0.020081s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk [0.023953s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up [0.033040s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs [0.022321s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up [0.018204s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied [0.015403s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount [0.017677s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception [0.014240s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image [0.012625s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date [0.019376s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date [0.018130s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest [0.011267s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master [0.011943s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date [0.011713s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date [0.011660s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img [0.013603s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time [0.013277s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist [0.191494s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting [0.017911s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties [0.015421s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state [24.887104s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client [1.356132s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error [0.014930s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_error [0.018437s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls [0.011055s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked [0.010836s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked [0.010435s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 [0.010480s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass [0.010697s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail [0.010025s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass [0.010023s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail [0.010017s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug [0.017778s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent [0.050627s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state [0.050595s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties [0.048737s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent [0.051042s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception [0.053350s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2 [0.050709s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail [0.053424s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail [0.074061s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok [0.094553s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok [0.089690s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok [0.088173s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok [0.085119s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm [0.195397s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good [0.053070s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling [0.058372s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port [0.027001s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging [0.028512s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing [0.031907s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception [0.036449s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid [0.028174s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported [0.028340s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass [0.033778s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported [0.028180s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception [0.030077s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on [0.028521s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off [1.073126s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.022676s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.034407s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.026149s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout [0.022839s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user [0.048807s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password [0.061711s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port [0.038432s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console [0.076151s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console [0.068466s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail [0.064539s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port [0.049973s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console [0.063238s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console [0.057813s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console [0.057810s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue [0.073102s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_active [0.137691s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi [0.113570s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning [0.120291s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.131175s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true [0.472947s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_true [0.109102s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.257384s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.149511s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.152484s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.143166s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.053229s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot [0.049533s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good [0.046965s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false [0.051631s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue [0.082273s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot_uefi [0.137166s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_netboot [0.085002s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false_with_smartnic_port [0.073364s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_with_deployment_reboot [0.077615s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning [0.063038s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_fast_track [0.064972s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_active [0.055169s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying [0.080543s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate [0.042632s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_cache_instance_images_master_path [0.019802s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail [0.130837s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_no_root_uuid_or_disk_id [0.129258s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_whole_disk_image [0.085849s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_destroy_images [0.031832s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_preserve_ephemeral [0.072098s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_dir_path [0.016691s] ... ok {3} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__save_disk_layout [0.036404s] ... ok {3} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console [0.008288s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_another_boot_interface [0.040274s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk [0.063687s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot [0.078267s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active [0.084736s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_iscsi [0.070941s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true [0.272858s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_false [0.095783s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.100074s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.097216s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.098831s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_image_source [0.042363s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good [0.044688s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image [0.061266s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy [0.217052s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing [0.071404s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_calls_boot_validate [0.050109s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts [0.050624s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ [0.024561s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write [0.022082s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport [0.024934s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport [0.028110s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set [0.024672s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport [0.023049s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off [0.015268s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on [0.013969s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on [0.016693s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset [0.023869s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on [0.019104s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset [0.016061s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off [0.014792s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects [0.014522s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset [0.026547s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off [0.021553s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure [0.014991s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on [0.014800s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset [0.015696s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on [0.014125s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on [0.014040s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects [0.017983s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off [0.015329s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure [0.014398s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached [12.914779s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_session [0.091263s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_disabled_sessions_cache [0.066636s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_new_session_username [0.068013s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_connection_error_retry [0.070639s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_not_found [0.064069s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme [0.020668s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.022880s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type [0.021053s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath [0.022064s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns [0.071327s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path [0.062160s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout [4.018312s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error [0.077072s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure [0.075543s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target [0.080965s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.083671s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors [0.076920s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot [0.096967s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors [0.069190s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image [0.098916s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.068133s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final [0.057124s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result [0.055186s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered [0.074778s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config [0.067049s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping [0.086229s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration [0.105710s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot [0.116168s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic [0.115964s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent [0.074366s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on [0.095303s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up [0.060196s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_manage_agent_boot_false [0.061795s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_image_source_is_url [0.095129s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_partition_image [0.098500s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_no_proxy_without_proxies [0.096720s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track [0.118117s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started [0.067217s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done [0.075301s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_race [0.085358s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_still_running [0.105438s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false_with_smartnic_port [0.214498s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority [0.060851s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track [0.090974s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states [0.150600s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities [0.132006s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities_overwrite [0.132194s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance [0.104749s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_boot_error [0.141676s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_no_manage_agent_boot [0.104256s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_image [0.114732s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false [0.076677s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params [0.071138s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args [0.018012s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_glance [0.018258s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot [0.067717s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_uefi [0.057765s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_with_prep [0.055377s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_reboot [0.081040s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running [0.054374s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_unknown [0.055399s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy [0.056381s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_configure_tenant_network_exception [0.105472s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_get_power_state_fails [0.067549s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off_failed [0.071901s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_with_smartnic_port [0.055260s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue [0.065817s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning [0.094251s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state [0.605171s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_not_in_core_deploy_step_polling [0.117167s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_reboot_to_instance [0.103537s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean_fails [0.212964s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps [0.093814s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_interface [0.058149s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_steps [0.081304s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect [0.018778s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header [0.013049s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader [0.015039s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off [0.015906s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_wipe_disk_metadata [0.015432s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists [0.024835s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception [0.027325s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill [2.229937s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console [0.031618s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout [0.030687s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console [0.015150s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_get_clean_steps [0.062029s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream [0.021173s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true [0.021681s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_version_mismatch [0.083063s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_custom_interface [0.059281s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false [0.077819s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning [0.107854s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning [0.050339s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch [0.020613s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch [0.024603s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_parent_device_yield [0.016169s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path [0.020813s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout [9.029917s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image [0.029848s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option [0.030128s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none [0.031897s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities [0.012077s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info [0.011637s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string [0.012119s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type [0.011819s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device [0.020453s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot [0.031952s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot [0.038388s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_boot_option [0.023047s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image [0.017630s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_with_config_drive [0.017969s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update [0.012331s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_override_attempts [0.019191s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_partition_image [0.043389s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot [0.040057s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_trusted_boot [0.030649s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image [0.139109s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_pxe_config_partition_image [0.023470s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image [0.020562s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image [0.101554s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image [0.080296s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none [0.097199s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot [0.080155s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception [0.059900s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi [0.101083s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi [0.079942s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_prop [0.021118s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found [0.014173s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch [0.015918s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount [0.009385s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering [0.007283s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned [0.010035s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image_linkfail [0.038493s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate [0.012591s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date [0.022268s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir [0.019097s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid [0.054060s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw [0.010508s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached [0.010364s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date [0.012716s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at [0.010234s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting [0.014368s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector [0.014487s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked [0.016228s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat [0.010544s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls [0.010302s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 [0.009967s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls [0.010456s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail [0.010144s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass [0.009566s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold [0.058741s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed [0.019708s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail [0.057152s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok [0.058913s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception [0.056961s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device [0.058961s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed [0.058861s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok [0.067651s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns [0.056228s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout [0.060995s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold [0.177247s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes [0.043940s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good [0.055969s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail [0.055944s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good [0.057955s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address [0.046029s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_wait [0.043612s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password [0.045262s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing [0.038408s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password [0.034723s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info [0.036747s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass [0.042302s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries [2.090280s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.034414s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.034390s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.033573s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version [0.200699s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console [0.078302s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail [0.083905s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir [0.076737s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate [0.057854s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port [0.054880s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version [0.054528s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance [0.087917s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk [0.129419s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.111229s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_always [0.119125s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.174850s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi [0.178983s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_invalid_trusted_boot_value [0.075064s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port [0.083270s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.098801s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.CleanUpFullFlowTestCase.test_clean_up_with_master [0.079235s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties [0.061893s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_storage_should_write_false [0.127947s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning [0.075013s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_with_smartnic_port [0.139959s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_fails [0.085858s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image_no_root [0.110853s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_empty_root_uuid [0.166737s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_start_iscsi_failure [0.171196s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_cpu_arch_none [0.019519s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_disk_label [0.022399s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_netboot_specified [0.022567s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image [0.035332s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image_no_root [0.034115s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor [0.008590s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods [0.007738s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue [0.077150s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties [0.053794s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid [0.079662s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.098372s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.094369s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid [0.062386s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk [0.191032s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning [0.125147s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.157499s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_default [0.107423s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_never [0.643139s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state [9.561966s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure [0.021318s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure [0.024867s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error [0.019629s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure [0.019631s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties [0.069447s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.186845s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error [0.067867s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure [0.070623s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error [0.064199s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.224758s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error [0.077533s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc [0.019362s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default [0.014672s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet [0.014968s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address [0.016205s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 [0.014303s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot [0.109848s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user [0.025818s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default [0.013930s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c [0.026414s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto [0.019769s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto [0.022337s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat [0.014722s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto [0.024537s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey [0.014004s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config [0.020862s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare [0.185340s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device [0.063243s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active [0.123813s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail [0.071098s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_primary_none [0.060395s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance [0.101026s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device [0.062622s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state [0.056741s] ... ok {3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo [0.009176s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state [0.097438s] ... ok {3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict [0.008822s] ... ok {3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo [0.010523s] ... ok {3} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args [0.008817s] ... ok {3} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args [0.009142s] ... ok {3} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata [0.008761s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport [0.041565s] ... ok {3} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration [0.013601s] ... ok {3} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties [0.011065s] ... ok {3} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper [0.010501s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout [0.039405s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl [0.013590s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl [0.009002s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine [0.029977s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl [0.011209s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine [0.027348s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on [0.020913s] ... ok {3} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect [0.054426s] ... 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.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset [0.034933s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects [0.025291s] ... ok {3} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface [0.050917s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off [0.030177s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off [0.020674s] ... ok {3} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces [0.051356s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects [0.018291s] ... ok {3} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators [0.048616s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on [0.037218s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on [0.025099s] ... ok {3} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail [0.051306s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on [0.023251s] ... ok {3} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none [0.014511s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset [0.021037s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects [0.016220s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off [0.020634s] ... ok {3} ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces [0.050087s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset [0.020928s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off [0.019783s] ... ok {3} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector [0.049012s] ... ok {3} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces [0.085101s] ... ok {3} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt [0.087600s] ... ok {3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration [0.107045s] ... ok {3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration [0.055580s] ... ok {3} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces [0.049472s] ... ok {3} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management [0.049026s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs [0.012814s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift [0.015084s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability [0.058422s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate [0.058485s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict [0.016553s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail [0.016363s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent [0.067727s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true [0.065308s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses [0.051275s] ... ok {3} ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces [0.046963s] ... ok {3} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id [0.013009s] ... ok {3} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh [0.024514s] ... ok {3} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save [0.019552s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create [0.014645s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list [0.014315s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load [0.018703s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register [0.026036s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased [0.015425s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group [0.014405s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch [0.015960s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names [0.017137s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save [0.014736s] ... ok {3} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values [0.008875s] ... ok {3} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce [0.008022s] ... ok {3} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function [0.011185s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing [0.013413s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default [0.012908s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing [0.013603s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set [0.012959s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset [0.013487s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing [0.013100s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove [0.015776s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing [0.011808s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set [0.022816s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing [0.012869s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.019328s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing [0.022652s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove [0.027743s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set [0.022472s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default [0.023281s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing [0.022035s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success [0.024160s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits [0.021083s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid [0.040974s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found [0.022651s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses [0.021662s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve [0.022153s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save [0.026040s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase [0.025052s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties [0.021838s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload [0.017760s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema [0.026849s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails [0.011147s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails [0.011130s] ... ok {3} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two [0.010691s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old [0.017302s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object [0.011448s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list [0.011006s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes [0.011538s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep [0.010723s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade [0.011682s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned [0.012931s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin [0.010797s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj [0.012007s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_object_property [0.010055s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor [0.012159s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored [0.030494s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin [0.011453s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api [0.011327s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor [0.011125s] ... ok {3} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly [0.118815s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set [0.015157s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove [0.015043s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing [0.014535s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default [0.015110s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.015687s] ... ok {3} ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_all [0.039315s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_create [0.019850s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id [0.020422s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas [0.017052s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported [0.024217s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.015879s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name [0.020931s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid [0.014616s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list [0.014377s] ... ok {3} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create [0.014481s] ... ok {3} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list [0.019224s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy [0.018988s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id [0.015016s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get [0.014262s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid [0.014021s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id [0.015050s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh [0.024087s] ... ok {3} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute [0.008674s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state [9.027172s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure [0.022796s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout [10.697397s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option [0.019064s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay [2.018785s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on [0.016057s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset [0.019785s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on [0.016357s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects [0.016003s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error [0.067046s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error [0.064334s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch [0.013894s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver [0.013351s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community [0.014141s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 [0.013297s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key [0.014560s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id [0.017335s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix [0.020878s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community [0.013304s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port [0.024754s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_current_none [0.060995s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail [0.062256s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout [0.064205s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict [0.010065s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args [0.014521s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args [0.017907s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references [0.008639s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception [0.018129s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception [0.015967s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception [0.016920s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid [0.010562s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate [0.011751s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables [0.007590s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl [0.009762s] ... ok {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor [0.055419s] ... 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. 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.055621s] ... 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.057890s] ... 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.065261s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface [0.052949s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties [0.054298s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices [0.054805s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good [0.053332s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good [0.053985s] ... ok {1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties [0.018461s] ... ok {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue [0.054344s] ... ok {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe [0.053875s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue [0.056206s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox [0.054179s] ... ok {1} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration [0.057069s] ... ok {1} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector [0.058586s] ... ok {1} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties [0.018150s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown [0.013081s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append [0.065788s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail [0.017581s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device [0.057533s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none [0.017651s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name [0.015507s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas [0.019852s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save [0.028132s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save [0.023465s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update [0.039964s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid [0.021708s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh [0.046928s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces [0.027683s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group [0.022684s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update [0.022744s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true [0.021611s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save [0.020229s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id [0.020215s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh [0.020405s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation [0.011017s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value [0.010443s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value [0.010994s] ... ok {1} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash [0.011039s] ... ok {1} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function [0.010958s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default [0.018826s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default [0.018409s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set [0.019288s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing [0.017933s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set [0.017937s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing [0.017196s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default [0.018057s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default [0.017243s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove [0.021551s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default [0.017468s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure [0.018028s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_create [0.020724s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found [0.019139s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid [0.020024s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated [0.034457s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group [0.021260s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits [0.016039s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload [0.016701s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low [0.021466s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema [0.009408s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field [0.009681s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object [0.010448s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad [0.013200s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 [0.009498s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new [0.009129s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_dehydration [0.009554s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db [0.010726s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get [0.009661s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set [0.008750s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_static_result [0.008572s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_supports_version [0.009625s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype [0.008766s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_updates [0.008606s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero [0.009839s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports [0.010223s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport [0.009795s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization [0.008858s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api [0.010973s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check [0.025026s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported [0.014252s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default [0.014727s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_address [0.014158s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address [0.043964s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_save [0.028910s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra [0.023023s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh [0.069997s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id [0.025993s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names [0.021958s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get [0.025587s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id [0.024983s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid [0.024926s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list [0.025486s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none [0.025375s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create [0.025571s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id [0.019748s] ... ok {1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute [0.008607s] ... ok ====== Totals ====== Ran: 6000 tests in 199.0000 sec. - Passed: 5988 - Skipped: 12 - Expected Fail: 0 - Unexpected Success: 0 - Failed: 0 Sum of execute time for each test: 637.9746 sec. ============== Worker Balance ============== - Worker 0 (1500 tests) => 0:02:07.418505 - Worker 1 (1500 tests) => 0:03:19.073566 - Worker 2 (1500 tests) => 0:02:17.555830 - Worker 3 (1500 tests) => 0:02:55.865155 + exit 0 Processing files: openstack-ironic-common-13.0.1-1.el7.noarch warning: File not found: /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/lib/python2.7/site-packages/ironic_tests.egg_info Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.tSNyPD + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.1 + DOCDIR=/builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/share/doc/openstack-ironic-common-13.0.1 + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/share/doc/openstack-ironic-common-13.0.1 + cp -pr README.rst /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/share/doc/openstack-ironic-common-13.0.1 + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.jKxHOy + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.1 + LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/share/licenses/openstack-ironic-common-13.0.1 + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/share/licenses/openstack-ironic-common-13.0.1 + cp -pr LICENSE /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch/usr/share/licenses/openstack-ironic-common-13.0.1 + exit 0 Provides: config(openstack-ironic-common) = 1:13.0.1-1.el7 openstack-ironic-common = 1:13.0.1-1.el7 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/python2 python(abi) = 2.7 Processing files: openstack-ironic-api-13.0.1-1.el7.noarch Provides: openstack-ironic-api = 1:13.0.1-1.el7 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 systemd Requires(preun): /bin/sh systemd Requires(postun): /bin/sh systemd Requires: /usr/bin/python2 Processing files: openstack-ironic-conductor-13.0.1-1.el7.noarch Provides: openstack-ironic-conductor = 1:13.0.1-1.el7 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 systemd Requires(preun): /bin/sh systemd Requires(postun): /bin/sh systemd Requires: /usr/bin/python2 Processing files: python2-ironic-tests-13.0.1-1.el7.noarch Provides: python-ironic-tests = 1:13.0.1-1.el7 python2-ironic-tests = 1:13.0.1-1.el7 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) = 2.7 Obsoletes: python-ironic-tests < 1:13.0.1-1.el7 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch Wrote: /builddir/build/RPMS/openstack-ironic-common-13.0.1-1.el7.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-api-13.0.1-1.el7.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-conductor-13.0.1-1.el7.noarch.rpm Wrote: /builddir/build/RPMS/python2-ironic-tests-13.0.1-1.el7.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.zt6d7f + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.1 + /usr/bin/rm -rf /builddir/build/BUILDROOT/openstack-ironic-13.0.1-1.el7.noarch + exit 0 Child return code was: 0