Diff of the two buildlogs: -- --- b1/build.log 2024-12-20 00:44:26.507026781 +0000 +++ b2/build.log 2024-12-20 00:54:04.508683027 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Jan 21 19:03:00 -12 2026 -I: pbuilder-time-stamp: 1769065380 +I: Current time: Thu Jan 22 21:07:29 +14 2026 +I: pbuilder-time-stamp: 1769065649 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -30,52 +30,84 @@ dpkg-source: info: applying removed-setuptools-depends.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1216815/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1715333/tmp/hooks/D01_modify_environment starting +debug: Running on codethink03-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Jan 22 07:07 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/1715333/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1715333/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='fe4312b32a01445ea41c912d3a3333f9' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1216815' - PS1='# ' - PS2='> ' + INVOCATION_ID=a74ba2eb9d9347478a01331c2321b113 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=1715333 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.jgfvmJ5t/pbuilderrc_9SZf --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.jgfvmJ5t/b1 --logfile b1/build.log magnum_19.0.0-3.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.jgfvmJ5t/pbuilderrc_hKsN --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.jgfvmJ5t/b2 --logfile b2/build.log magnum_19.0.0-3.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink01-arm64 6.1.0-28-cloud-arm64 #1 SMP Debian 6.1.119-1 (2024-11-22) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-28-cloud-arm64 #1 SMP Debian 6.1.119-1 (2024-11-22) aarch64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1216815/tmp/hooks/D02_print_environment finished +I: user script /srv/workspace/pbuilder/1715333/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -635,7 +667,7 @@ Get: 388 http://deb.debian.org/debian unstable/main arm64 python3-webtest all 3.0.0-4 [34.7 kB] Get: 389 http://deb.debian.org/debian unstable/main arm64 python3-werkzeug all 3.1.3-2 [207 kB] Get: 390 http://deb.debian.org/debian unstable/main arm64 python3-wsme all 0.12.1-5 [44.0 kB] -Fetched 117 MB in 1s (202 MB/s) +Fetched 117 MB in 1s (81.6 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.12-minimal:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20084 files and directories currently installed.) @@ -1867,8 +1899,8 @@ Setting up tzdata (2024b-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Jan 22 07:03:44 UTC 2026. -Universal Time is now: Thu Jan 22 07:03:44 UTC 2026. +Local time is now: Thu Jan 22 07:09:21 UTC 2026. +Universal Time is now: Thu Jan 22 07:09:21 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up liberror-perl (0.17029-2) ... @@ -2244,7 +2276,11 @@ fakeroot is already the newest version (1.36-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/magnum-19.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../magnum_19.0.0-3_source.changes +I: user script /srv/workspace/pbuilder/1715333/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/1715333/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/magnum-19.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../magnum_19.0.0-3_source.changes dpkg-buildpackage: info: source package magnum dpkg-buildpackage: info: source version 19.0.0-3 dpkg-buildpackage: info: source distribution unstable @@ -2514,95 +2550,12 @@ copying magnum/tests/unit/conductor/test_monitors.py -> build/lib/magnum/tests/unit/conductor copying magnum/tests/unit/conductor/test_k8s_api.py -> build/lib/magnum/tests/unit/conductor copying magnum/tests/unit/conductor/__init__.py -> build/lib/magnum/tests/unit/conductor -creating build/lib/magnum/tests/functional/api -copying magnum/tests/functional/api/base.py -> build/lib/magnum/tests/functional/api -copying magnum/tests/functional/api/__init__.py -> build/lib/magnum/tests/functional/api -creating build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/test_utils.py -> build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/test_types.py -> build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/test_stats.py -> build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/test_quota.py -> build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/test_nodegroup.py -> build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/test_magnum_service.py -> build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/test_federation.py -> build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/test_cluster_template.py -> build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/test_cluster_actions.py -> build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/test_cluster.py -> build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/test_certificate.py -> build/lib/magnum/tests/unit/api/controllers/v1 -copying magnum/tests/unit/api/controllers/v1/__init__.py -> build/lib/magnum/tests/unit/api/controllers/v1 -creating build/lib/magnum/tests/unit/servicegroup -copying magnum/tests/unit/servicegroup/test_magnum_service.py -> build/lib/magnum/tests/unit/servicegroup -copying magnum/tests/unit/servicegroup/__init__.py -> build/lib/magnum/tests/unit/servicegroup -creating build/lib/magnum/cmd -copying magnum/cmd/status.py -> build/lib/magnum/cmd -copying magnum/cmd/driver_manage.py -> build/lib/magnum/cmd -copying magnum/cmd/db_manage.py -> build/lib/magnum/cmd -copying magnum/cmd/conductor.py -> build/lib/magnum/cmd -copying magnum/cmd/api.py -> build/lib/magnum/cmd -copying magnum/cmd/__init__.py -> build/lib/magnum/cmd -creating build/lib/magnum/common/cert_manager -copying magnum/common/cert_manager/x509keypair_cert_manager.py -> build/lib/magnum/common/cert_manager -copying magnum/common/cert_manager/local_cert_manager.py -> build/lib/magnum/common/cert_manager -copying magnum/common/cert_manager/cert_manager.py -> build/lib/magnum/common/cert_manager -copying magnum/common/cert_manager/barbican_cert_manager.py -> build/lib/magnum/common/cert_manager -copying magnum/common/cert_manager/__init__.py -> build/lib/magnum/common/cert_manager -copying magnum/common/utils.py -> build/lib/magnum/common -copying magnum/common/urlfetch.py -> build/lib/magnum/common -copying magnum/common/short_id.py -> build/lib/magnum/common -copying magnum/common/service.py -> build/lib/magnum/common -copying magnum/common/rpc_service.py -> build/lib/magnum/common -copying magnum/common/rpc.py -> build/lib/magnum/common -copying magnum/common/profiler.py -> build/lib/magnum/common -copying magnum/common/policy.py -> build/lib/magnum/common -copying magnum/common/octavia.py -> build/lib/magnum/common -copying magnum/common/nova.py -> build/lib/magnum/common -copying magnum/common/neutron.py -> build/lib/magnum/common -copying magnum/common/name_generator.py -> build/lib/magnum/common -copying magnum/common/keystone.py -> build/lib/magnum/common -copying magnum/common/exception.py -> build/lib/magnum/common -copying magnum/common/context.py -> build/lib/magnum/common -copying magnum/common/config.py -> build/lib/magnum/common -copying magnum/common/clients.py -> build/lib/magnum/common -copying magnum/common/cinder.py -> build/lib/magnum/common -copying magnum/common/__init__.py -> build/lib/magnum/common -creating build/lib/magnum/service -copying magnum/service/periodic.py -> build/lib/magnum/service -copying magnum/service/__init__.py -> build/lib/magnum/service -creating build/lib/magnum/tests/functional/api/v1/clients -copying magnum/tests/functional/api/v1/clients/magnum_service_client.py -> build/lib/magnum/tests/functional/api/v1/clients -copying magnum/tests/functional/api/v1/clients/cluster_template_client.py -> build/lib/magnum/tests/functional/api/v1/clients -copying magnum/tests/functional/api/v1/clients/cluster_client.py -> build/lib/magnum/tests/functional/api/v1/clients -copying magnum/tests/functional/api/v1/clients/cert_client.py -> build/lib/magnum/tests/functional/api/v1/clients -copying magnum/tests/functional/api/v1/clients/__init__.py -> build/lib/magnum/tests/functional/api/v1/clients -creating build/lib/magnum/tests/functional/api/v1/models -copying magnum/tests/functional/api/v1/models/magnum_service_model.py -> build/lib/magnum/tests/functional/api/v1/models -copying magnum/tests/functional/api/v1/models/clusterpatch_model.py -> build/lib/magnum/tests/functional/api/v1/models -copying magnum/tests/functional/api/v1/models/cluster_templatepatch_model.py -> build/lib/magnum/tests/functional/api/v1/models -copying magnum/tests/functional/api/v1/models/cluster_template_model.py -> build/lib/magnum/tests/functional/api/v1/models -copying magnum/tests/functional/api/v1/models/cluster_model.py -> build/lib/magnum/tests/functional/api/v1/models -copying magnum/tests/functional/api/v1/models/cluster_id_model.py -> build/lib/magnum/tests/functional/api/v1/models -copying magnum/tests/functional/api/v1/models/cert_model.py -> build/lib/magnum/tests/functional/api/v1/models -copying magnum/tests/functional/api/v1/models/__init__.py -> build/lib/magnum/tests/functional/api/v1/models -creating build/lib/magnum/tests/unit/conductor/handlers -copying magnum/tests/unit/conductor/handlers/test_nodegroup_conductor.py -> build/lib/magnum/tests/unit/conductor/handlers -copying magnum/tests/unit/conductor/handlers/test_k8s_cluster_conductor.py -> build/lib/magnum/tests/unit/conductor/handlers -copying magnum/tests/unit/conductor/handlers/test_indirection_api.py -> build/lib/magnum/tests/unit/conductor/handlers -copying magnum/tests/unit/conductor/handlers/test_federation_conductor.py -> build/lib/magnum/tests/unit/conductor/handlers -copying magnum/tests/unit/conductor/handlers/test_conductor_listener.py -> build/lib/magnum/tests/unit/conductor/handlers -copying magnum/tests/unit/conductor/handlers/test_cluster_conductor.py -> build/lib/magnum/tests/unit/conductor/handlers -copying magnum/tests/unit/conductor/handlers/test_ca_conductor.py -> build/lib/magnum/tests/unit/conductor/handlers -copying magnum/tests/unit/conductor/handlers/__init__.py -> build/lib/magnum/tests/unit/conductor/handlers -creating build/lib/magnum/drivers/k8s_fedora_coreos_v1 -copying magnum/drivers/k8s_fedora_coreos_v1/version.py -> build/lib/magnum/drivers/k8s_fedora_coreos_v1 -copying magnum/drivers/k8s_fedora_coreos_v1/template_def.py -> build/lib/magnum/drivers/k8s_fedora_coreos_v1 -copying magnum/drivers/k8s_fedora_coreos_v1/driver.py -> build/lib/magnum/drivers/k8s_fedora_coreos_v1 -copying magnum/drivers/k8s_fedora_coreos_v1/__init__.py -> build/lib/magnum/drivers/k8s_fedora_coreos_v1 -creating build/lib/magnum/api/controllers -copying magnum/api/controllers/versions.py -> build/lib/magnum/api/controllers -copying magnum/api/controllers/root.py -> build/lib/magnum/api/controllers -copying magnum/api/controllers/link.py -> build/lib/magnum/api/controllers -copying magnum/api/controllers/base.py -> build/lib/magnum/api/controllers -copying magnum/api/controllers/__init__.py -> build/lib/magnum/api/controllers +creating build/lib/magnum/tests/unit/common/x509 +copying magnum/tests/unit/common/x509/test_validator.py -> build/lib/magnum/tests/unit/common/x509 +copying magnum/tests/unit/common/x509/test_sign.py -> build/lib/magnum/tests/unit/common/x509 +copying magnum/tests/unit/common/x509/test_operations.py -> build/lib/magnum/tests/unit/common/x509 +copying magnum/tests/unit/common/x509/__init__.py -> build/lib/magnum/tests/unit/common/x509 +creating build/lib/magnum/api copying magnum/api/versioned_method.py -> build/lib/magnum/api copying magnum/api/validation.py -> build/lib/magnum/api copying magnum/api/utils.py -> build/lib/magnum/api @@ -2614,20 +2567,48 @@ copying magnum/api/attr_validator.py -> build/lib/magnum/api copying magnum/api/app.py -> build/lib/magnum/api copying magnum/api/__init__.py -> build/lib/magnum/api -creating build/lib/magnum/tests/unit/common/policies -copying magnum/tests/unit/common/policies/test_stats_policy.py -> build/lib/magnum/tests/unit/common/policies -copying magnum/tests/unit/common/policies/test_quota_policy.py -> build/lib/magnum/tests/unit/common/policies -copying magnum/tests/unit/common/policies/test_nodegroup_policy.py -> build/lib/magnum/tests/unit/common/policies -copying magnum/tests/unit/common/policies/test_magnum_service_policy.py -> build/lib/magnum/tests/unit/common/policies -copying magnum/tests/unit/common/policies/test_federation_policy.py -> build/lib/magnum/tests/unit/common/policies -copying magnum/tests/unit/common/policies/test_cluster_template_policy.py -> build/lib/magnum/tests/unit/common/policies -copying magnum/tests/unit/common/policies/test_cluster_policy.py -> build/lib/magnum/tests/unit/common/policies -copying magnum/tests/unit/common/policies/test_certificate_policy.py -> build/lib/magnum/tests/unit/common/policies -copying magnum/tests/unit/common/policies/base.py -> build/lib/magnum/tests/unit/common/policies -copying magnum/tests/unit/common/policies/__init__.py -> build/lib/magnum/tests/unit/common/policies +creating build/lib/magnum/tests/functional/api/v1/models +copying magnum/tests/functional/api/v1/models/magnum_service_model.py -> build/lib/magnum/tests/functional/api/v1/models +copying magnum/tests/functional/api/v1/models/clusterpatch_model.py -> build/lib/magnum/tests/functional/api/v1/models +copying magnum/tests/functional/api/v1/models/cluster_templatepatch_model.py -> build/lib/magnum/tests/functional/api/v1/models +copying magnum/tests/functional/api/v1/models/cluster_template_model.py -> build/lib/magnum/tests/functional/api/v1/models +copying magnum/tests/functional/api/v1/models/cluster_model.py -> build/lib/magnum/tests/functional/api/v1/models +copying magnum/tests/functional/api/v1/models/cluster_id_model.py -> build/lib/magnum/tests/functional/api/v1/models +copying magnum/tests/functional/api/v1/models/cert_model.py -> build/lib/magnum/tests/functional/api/v1/models +copying magnum/tests/functional/api/v1/models/__init__.py -> build/lib/magnum/tests/functional/api/v1/models +copying magnum/tests/utils.py -> build/lib/magnum/tests +copying magnum/tests/policy_fixture.py -> build/lib/magnum/tests +copying magnum/tests/output_fixture.py -> build/lib/magnum/tests +copying magnum/tests/fakes.py -> build/lib/magnum/tests +copying magnum/tests/fake_notifier.py -> build/lib/magnum/tests +copying magnum/tests/conf_fixture.py -> build/lib/magnum/tests +copying magnum/tests/base.py -> build/lib/magnum/tests +copying magnum/tests/__init__.py -> build/lib/magnum/tests +creating build/lib/magnum/api/middleware +copying magnum/api/middleware/parsable_error.py -> build/lib/magnum/api/middleware +copying magnum/api/middleware/auth_token.py -> build/lib/magnum/api/middleware +copying magnum/api/middleware/__init__.py -> build/lib/magnum/api/middleware copying magnum/version.py -> build/lib/magnum copying magnum/i18n.py -> build/lib/magnum copying magnum/__init__.py -> build/lib/magnum +copying magnum/tests/unit/common/test_utils.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_urlfetch.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_short_id.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_service.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_rpc.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_profiler.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_policy.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_octavia.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_neutron.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_keystone.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_exception.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_context.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/test_clients.py -> build/lib/magnum/tests/unit/common +copying magnum/tests/unit/common/__init__.py -> build/lib/magnum/tests/unit/common +creating build/lib/magnum/tests/unit/api/controllers +copying magnum/tests/unit/api/controllers/test_root.py -> build/lib/magnum/tests/unit/api/controllers +copying magnum/tests/unit/api/controllers/test_base.py -> build/lib/magnum/tests/unit/api/controllers +copying magnum/tests/unit/api/controllers/__init__.py -> build/lib/magnum/tests/unit/api/controllers creating build/lib/magnum/conf copying magnum/conf/docker.py -> build/lib/magnum/conf copying magnum/conf/x509.py -> build/lib/magnum/conf @@ -2666,38 +2647,51 @@ copying magnum/drivers/heat/k8s_coreos_template_def.py -> build/lib/magnum/drivers/heat copying magnum/drivers/heat/driver.py -> build/lib/magnum/drivers/heat copying magnum/drivers/heat/__init__.py -> build/lib/magnum/drivers/heat -creating build/lib/magnum/db -copying magnum/db/migration.py -> build/lib/magnum/db -copying magnum/db/api.py -> build/lib/magnum/db -copying magnum/db/__init__.py -> build/lib/magnum/db -copying magnum/tests/unit/api/controllers/test_root.py -> build/lib/magnum/tests/unit/api/controllers -copying magnum/tests/unit/api/controllers/test_base.py -> build/lib/magnum/tests/unit/api/controllers -copying magnum/tests/unit/api/controllers/__init__.py -> build/lib/magnum/tests/unit/api/controllers -creating build/lib/magnum/tests/unit/db/sqlalchemy -copying magnum/tests/unit/db/sqlalchemy/test_types.py -> build/lib/magnum/tests/unit/db/sqlalchemy -copying magnum/tests/unit/db/sqlalchemy/__init__.py -> build/lib/magnum/tests/unit/db/sqlalchemy -copying magnum/tests/utils.py -> build/lib/magnum/tests -copying magnum/tests/policy_fixture.py -> build/lib/magnum/tests -copying magnum/tests/output_fixture.py -> build/lib/magnum/tests -copying magnum/tests/fakes.py -> build/lib/magnum/tests -copying magnum/tests/fake_notifier.py -> build/lib/magnum/tests -copying magnum/tests/conf_fixture.py -> build/lib/magnum/tests -copying magnum/tests/base.py -> build/lib/magnum/tests -copying magnum/tests/__init__.py -> build/lib/magnum/tests -copying magnum/tests/unit/common/test_utils.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_urlfetch.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_short_id.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_service.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_rpc.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_profiler.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_policy.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_octavia.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_neutron.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_keystone.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_exception.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_context.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/test_clients.py -> build/lib/magnum/tests/unit/common -copying magnum/tests/unit/common/__init__.py -> build/lib/magnum/tests/unit/common +creating build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/types.py -> build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/stats.py -> build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/quota.py -> build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/nodegroup.py -> build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/magnum_services.py -> build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/federation.py -> build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/collection.py -> build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/cluster_template.py -> build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/cluster_actions.py -> build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/cluster.py -> build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/certificate.py -> build/lib/magnum/api/controllers/v1 +copying magnum/api/controllers/v1/__init__.py -> build/lib/magnum/api/controllers/v1 +creating build/lib/magnum/tests/functional/common +copying magnum/tests/functional/common/utils.py -> build/lib/magnum/tests/functional/common +copying magnum/tests/functional/common/models.py -> build/lib/magnum/tests/functional/common +copying magnum/tests/functional/common/manager.py -> build/lib/magnum/tests/functional/common +copying magnum/tests/functional/common/datagen.py -> build/lib/magnum/tests/functional/common +copying magnum/tests/functional/common/config.py -> build/lib/magnum/tests/functional/common +copying magnum/tests/functional/common/client.py -> build/lib/magnum/tests/functional/common +copying magnum/tests/functional/common/base.py -> build/lib/magnum/tests/functional/common +copying magnum/tests/functional/common/__init__.py -> build/lib/magnum/tests/functional/common +copying magnum/tests/functional/api/base.py -> build/lib/magnum/tests/functional/api +copying magnum/tests/functional/api/__init__.py -> build/lib/magnum/tests/functional/api +copying magnum/drivers/__init__.py -> build/lib/magnum/drivers +creating build/lib/magnum/tests/functional/k8s +copying magnum/tests/functional/k8s/test_magnum_python_client.py -> build/lib/magnum/tests/functional/k8s +copying magnum/tests/functional/k8s/test_k8s_python_client.py -> build/lib/magnum/tests/functional/k8s +copying magnum/tests/functional/k8s/__init__.py -> build/lib/magnum/tests/functional/k8s +creating build/lib/magnum/tests/functional/api/v1/clients +copying magnum/tests/functional/api/v1/clients/magnum_service_client.py -> build/lib/magnum/tests/functional/api/v1/clients +copying magnum/tests/functional/api/v1/clients/cluster_template_client.py -> build/lib/magnum/tests/functional/api/v1/clients +copying magnum/tests/functional/api/v1/clients/cluster_client.py -> build/lib/magnum/tests/functional/api/v1/clients +copying magnum/tests/functional/api/v1/clients/cert_client.py -> build/lib/magnum/tests/functional/api/v1/clients +copying magnum/tests/functional/api/v1/clients/__init__.py -> build/lib/magnum/tests/functional/api/v1/clients +creating build/lib/magnum/db/sqlalchemy +copying magnum/db/sqlalchemy/models.py -> build/lib/magnum/db/sqlalchemy +copying magnum/db/sqlalchemy/migration.py -> build/lib/magnum/db/sqlalchemy +copying magnum/db/sqlalchemy/api.py -> build/lib/magnum/db/sqlalchemy +copying magnum/db/sqlalchemy/__init__.py -> build/lib/magnum/db/sqlalchemy +creating build/lib/magnum/tests/unit/servicegroup +copying magnum/tests/unit/servicegroup/test_magnum_service.py -> build/lib/magnum/tests/unit/servicegroup +copying magnum/tests/unit/servicegroup/__init__.py -> build/lib/magnum/tests/unit/servicegroup +copying magnum/tests/unit/test_hacking.py -> build/lib/magnum/tests/unit +copying magnum/tests/unit/__init__.py -> build/lib/magnum/tests/unit creating build/lib/magnum/tests/unit/objects copying magnum/tests/unit/objects/utils.py -> build/lib/magnum/tests/unit/objects copying magnum/tests/unit/objects/test_x509keypair.py -> build/lib/magnum/tests/unit/objects @@ -2709,22 +2703,20 @@ copying magnum/tests/unit/objects/test_cluster_template.py -> build/lib/magnum/tests/unit/objects copying magnum/tests/unit/objects/test_cluster.py -> build/lib/magnum/tests/unit/objects copying magnum/tests/unit/objects/__init__.py -> build/lib/magnum/tests/unit/objects -creating build/lib/magnum/db/sqlalchemy -copying magnum/db/sqlalchemy/models.py -> build/lib/magnum/db/sqlalchemy -copying magnum/db/sqlalchemy/migration.py -> build/lib/magnum/db/sqlalchemy -copying magnum/db/sqlalchemy/api.py -> build/lib/magnum/db/sqlalchemy -copying magnum/db/sqlalchemy/__init__.py -> build/lib/magnum/db/sqlalchemy -copying magnum/tests/unit/api/utils.py -> build/lib/magnum/tests/unit/api -copying magnum/tests/unit/api/test_validation.py -> build/lib/magnum/tests/unit/api -copying magnum/tests/unit/api/test_servicegroup.py -> build/lib/magnum/tests/unit/api -copying magnum/tests/unit/api/test_hooks.py -> build/lib/magnum/tests/unit/api -copying magnum/tests/unit/api/test_expose.py -> build/lib/magnum/tests/unit/api -copying magnum/tests/unit/api/test_attr_validator.py -> build/lib/magnum/tests/unit/api -copying magnum/tests/unit/api/test_app.py -> build/lib/magnum/tests/unit/api -copying magnum/tests/unit/api/base.py -> build/lib/magnum/tests/unit/api -copying magnum/tests/unit/api/__init__.py -> build/lib/magnum/tests/unit/api -copying magnum/tests/functional/python_client_base.py -> build/lib/magnum/tests/functional -copying magnum/tests/functional/__init__.py -> build/lib/magnum/tests/functional +creating build/lib/magnum/tests/unit/db +copying magnum/tests/unit/db/utils.py -> build/lib/magnum/tests/unit/db +copying magnum/tests/unit/db/test_x509keypair.py -> build/lib/magnum/tests/unit/db +copying magnum/tests/unit/db/test_quota.py -> build/lib/magnum/tests/unit/db +copying magnum/tests/unit/db/test_nodegroup.py -> build/lib/magnum/tests/unit/db +copying magnum/tests/unit/db/test_magnum_service.py -> build/lib/magnum/tests/unit/db +copying magnum/tests/unit/db/test_federation.py -> build/lib/magnum/tests/unit/db +copying magnum/tests/unit/db/test_cluster_template.py -> build/lib/magnum/tests/unit/db +copying magnum/tests/unit/db/test_cluster.py -> build/lib/magnum/tests/unit/db +copying magnum/tests/unit/db/base.py -> build/lib/magnum/tests/unit/db +copying magnum/tests/unit/db/__init__.py -> build/lib/magnum/tests/unit/db +creating build/lib/magnum/tests/unit/template +copying magnum/tests/unit/template/test_template.py -> build/lib/magnum/tests/unit/template +copying magnum/tests/unit/template/__init__.py -> build/lib/magnum/tests/unit/template creating build/lib/magnum/tests/unit/cmd copying magnum/tests/unit/cmd/test_status.py -> build/lib/magnum/tests/unit/cmd copying magnum/tests/unit/cmd/test_driver_manage.py -> build/lib/magnum/tests/unit/cmd @@ -2732,57 +2724,6 @@ copying magnum/tests/unit/cmd/test_conductor.py -> build/lib/magnum/tests/unit/cmd copying magnum/tests/unit/cmd/test_api.py -> build/lib/magnum/tests/unit/cmd copying magnum/tests/unit/cmd/__init__.py -> build/lib/magnum/tests/unit/cmd -creating build/lib/magnum/common/policies -copying magnum/common/policies/stats.py -> build/lib/magnum/common/policies -copying magnum/common/policies/quota.py -> build/lib/magnum/common/policies -copying magnum/common/policies/nodegroup.py -> build/lib/magnum/common/policies -copying magnum/common/policies/magnum_service.py -> build/lib/magnum/common/policies -copying magnum/common/policies/federation.py -> build/lib/magnum/common/policies -copying magnum/common/policies/cluster_template.py -> build/lib/magnum/common/policies -copying magnum/common/policies/cluster.py -> build/lib/magnum/common/policies -copying magnum/common/policies/certificate.py -> build/lib/magnum/common/policies -copying magnum/common/policies/base.py -> build/lib/magnum/common/policies -copying magnum/common/policies/__init__.py -> build/lib/magnum/common/policies -creating build/lib/magnum/objects -copying magnum/objects/x509keypair.py -> build/lib/magnum/objects -copying magnum/objects/stats.py -> build/lib/magnum/objects -copying magnum/objects/quota.py -> build/lib/magnum/objects -copying magnum/objects/nodegroup.py -> build/lib/magnum/objects -copying magnum/objects/magnum_service.py -> build/lib/magnum/objects -copying magnum/objects/fields.py -> build/lib/magnum/objects -copying magnum/objects/federation.py -> build/lib/magnum/objects -copying magnum/objects/cluster_template.py -> build/lib/magnum/objects -copying magnum/objects/cluster.py -> build/lib/magnum/objects -copying magnum/objects/certificate.py -> build/lib/magnum/objects -copying magnum/objects/base.py -> build/lib/magnum/objects -copying magnum/objects/__init__.py -> build/lib/magnum/objects -creating build/lib/magnum/conductor -copying magnum/conductor/utils.py -> build/lib/magnum/conductor -copying magnum/conductor/scale_manager.py -> build/lib/magnum/conductor -copying magnum/conductor/monitors.py -> build/lib/magnum/conductor -copying magnum/conductor/k8s_api.py -> build/lib/magnum/conductor -copying magnum/conductor/api.py -> build/lib/magnum/conductor -copying magnum/conductor/__init__.py -> build/lib/magnum/conductor -creating build/lib/magnum/tests/unit/common/x509 -copying magnum/tests/unit/common/x509/test_validator.py -> build/lib/magnum/tests/unit/common/x509 -copying magnum/tests/unit/common/x509/test_sign.py -> build/lib/magnum/tests/unit/common/x509 -copying magnum/tests/unit/common/x509/test_operations.py -> build/lib/magnum/tests/unit/common/x509 -copying magnum/tests/unit/common/x509/__init__.py -> build/lib/magnum/tests/unit/common/x509 -creating build/lib/magnum/tests/functional/common -copying magnum/tests/functional/common/utils.py -> build/lib/magnum/tests/functional/common -copying magnum/tests/functional/common/models.py -> build/lib/magnum/tests/functional/common -copying magnum/tests/functional/common/manager.py -> build/lib/magnum/tests/functional/common -copying magnum/tests/functional/common/datagen.py -> build/lib/magnum/tests/functional/common -copying magnum/tests/functional/common/config.py -> build/lib/magnum/tests/functional/common -copying magnum/tests/functional/common/client.py -> build/lib/magnum/tests/functional/common -copying magnum/tests/functional/common/base.py -> build/lib/magnum/tests/functional/common -copying magnum/tests/functional/common/__init__.py -> build/lib/magnum/tests/functional/common -copying magnum/tests/unit/test_hacking.py -> build/lib/magnum/tests/unit -copying magnum/tests/unit/__init__.py -> build/lib/magnum/tests/unit -creating build/lib/magnum/tests/unit/drivers -copying magnum/tests/unit/drivers/test_template_definition.py -> build/lib/magnum/tests/unit/drivers -copying magnum/tests/unit/drivers/test_heat_driver.py -> build/lib/magnum/tests/unit/drivers -copying magnum/tests/unit/drivers/__init__.py -> build/lib/magnum/tests/unit/drivers creating build/lib/magnum/conductor/handlers copying magnum/conductor/handlers/nodegroup_conductor.py -> build/lib/magnum/conductor/handlers copying magnum/conductor/handlers/indirection_api.py -> build/lib/magnum/conductor/handlers @@ -2791,90 +2732,184 @@ copying magnum/conductor/handlers/cluster_conductor.py -> build/lib/magnum/conductor/handlers copying magnum/conductor/handlers/ca_conductor.py -> build/lib/magnum/conductor/handlers copying magnum/conductor/handlers/__init__.py -> build/lib/magnum/conductor/handlers -copying magnum/tests/unit/db/utils.py -> build/lib/magnum/tests/unit/db -copying magnum/tests/unit/db/test_x509keypair.py -> build/lib/magnum/tests/unit/db -copying magnum/tests/unit/db/test_quota.py -> build/lib/magnum/tests/unit/db -copying magnum/tests/unit/db/test_nodegroup.py -> build/lib/magnum/tests/unit/db -copying magnum/tests/unit/db/test_magnum_service.py -> build/lib/magnum/tests/unit/db -copying magnum/tests/unit/db/test_federation.py -> build/lib/magnum/tests/unit/db -copying magnum/tests/unit/db/test_cluster_template.py -> build/lib/magnum/tests/unit/db -copying magnum/tests/unit/db/test_cluster.py -> build/lib/magnum/tests/unit/db -copying magnum/tests/unit/db/base.py -> build/lib/magnum/tests/unit/db -copying magnum/tests/unit/db/__init__.py -> build/lib/magnum/tests/unit/db -creating build/lib/magnum/tests/unit/common/cert_manager -copying magnum/tests/unit/common/cert_manager/test_x509keypair_cert_manager.py -> build/lib/magnum/tests/unit/common/cert_manager -copying magnum/tests/unit/common/cert_manager/test_local.py -> build/lib/magnum/tests/unit/common/cert_manager -copying magnum/tests/unit/common/cert_manager/test_cert_manager.py -> build/lib/magnum/tests/unit/common/cert_manager -copying magnum/tests/unit/common/cert_manager/test_barbican.py -> build/lib/magnum/tests/unit/common/cert_manager -copying magnum/tests/unit/common/cert_manager/__init__.py -> build/lib/magnum/tests/unit/common/cert_manager -copying magnum/drivers/__init__.py -> build/lib/magnum/drivers -creating build/lib/magnum/tests/unit/conductor/handlers/common -copying magnum/tests/unit/conductor/handlers/common/test_trust_manager.py -> build/lib/magnum/tests/unit/conductor/handlers/common -copying magnum/tests/unit/conductor/handlers/common/test_cert_manager.py -> build/lib/magnum/tests/unit/conductor/handlers/common -copying magnum/tests/unit/conductor/handlers/common/__init__.py -> build/lib/magnum/tests/unit/conductor/handlers/common -creating build/lib/magnum/servicegroup -copying magnum/servicegroup/magnum_service_periodic.py -> build/lib/magnum/servicegroup -copying magnum/servicegroup/__init__.py -> build/lib/magnum/servicegroup +creating build/lib/magnum/conductor/tasks +copying magnum/conductor/tasks/heat_tasks.py -> build/lib/magnum/conductor/tasks +copying magnum/conductor/tasks/__init__.py -> build/lib/magnum/conductor/tasks +creating build/lib/magnum/tests/unit/service +copying magnum/tests/unit/service/test_periodic.py -> build/lib/magnum/tests/unit/service +copying magnum/tests/unit/service/__init__.py -> build/lib/magnum/tests/unit/service +creating build/lib/magnum/cmd +copying magnum/cmd/status.py -> build/lib/magnum/cmd +copying magnum/cmd/driver_manage.py -> build/lib/magnum/cmd +copying magnum/cmd/db_manage.py -> build/lib/magnum/cmd +copying magnum/cmd/conductor.py -> build/lib/magnum/cmd +copying magnum/cmd/api.py -> build/lib/magnum/cmd +copying magnum/cmd/__init__.py -> build/lib/magnum/cmd creating build/lib/magnum/tests/functional/k8s_fcos copying magnum/tests/functional/k8s_fcos/test_k8s_python_client.py -> build/lib/magnum/tests/functional/k8s_fcos copying magnum/tests/functional/k8s_fcos/__init__.py -> build/lib/magnum/tests/functional/k8s_fcos -creating build/lib/magnum/api/middleware -copying magnum/api/middleware/parsable_error.py -> build/lib/magnum/api/middleware -copying magnum/api/middleware/auth_token.py -> build/lib/magnum/api/middleware -copying magnum/api/middleware/__init__.py -> build/lib/magnum/api/middleware +copying magnum/api/controllers/versions.py -> build/lib/magnum/api/controllers +copying magnum/api/controllers/root.py -> build/lib/magnum/api/controllers +copying magnum/api/controllers/link.py -> build/lib/magnum/api/controllers +copying magnum/api/controllers/base.py -> build/lib/magnum/api/controllers +copying magnum/api/controllers/__init__.py -> build/lib/magnum/api/controllers +creating build/lib/magnum/tests/functional/k8s_ironic +copying magnum/tests/functional/k8s_ironic/test_k8s_python_client.py -> build/lib/magnum/tests/functional/k8s_ironic +copying magnum/tests/functional/k8s_ironic/__init__.py -> build/lib/magnum/tests/functional/k8s_ironic creating build/lib/magnum/common/x509 copying magnum/common/x509/validator.py -> build/lib/magnum/common/x509 copying magnum/common/x509/operations.py -> build/lib/magnum/common/x509 copying magnum/common/x509/extensions.py -> build/lib/magnum/common/x509 copying magnum/common/x509/__init__.py -> build/lib/magnum/common/x509 -creating build/lib/magnum/tests/unit/service -copying magnum/tests/unit/service/test_periodic.py -> build/lib/magnum/tests/unit/service -copying magnum/tests/unit/service/__init__.py -> build/lib/magnum/tests/unit/service +creating build/lib/magnum/tests/unit/db/sqlalchemy +copying magnum/tests/unit/db/sqlalchemy/test_types.py -> build/lib/magnum/tests/unit/db/sqlalchemy +copying magnum/tests/unit/db/sqlalchemy/__init__.py -> build/lib/magnum/tests/unit/db/sqlalchemy +creating build/lib/magnum/tests/unit/drivers +copying magnum/tests/unit/drivers/test_template_definition.py -> build/lib/magnum/tests/unit/drivers +copying magnum/tests/unit/drivers/test_heat_driver.py -> build/lib/magnum/tests/unit/drivers +copying magnum/tests/unit/drivers/__init__.py -> build/lib/magnum/tests/unit/drivers +creating build/lib/magnum/tests/unit/conductor/handlers +copying magnum/tests/unit/conductor/handlers/test_nodegroup_conductor.py -> build/lib/magnum/tests/unit/conductor/handlers +copying magnum/tests/unit/conductor/handlers/test_k8s_cluster_conductor.py -> build/lib/magnum/tests/unit/conductor/handlers +copying magnum/tests/unit/conductor/handlers/test_indirection_api.py -> build/lib/magnum/tests/unit/conductor/handlers +copying magnum/tests/unit/conductor/handlers/test_federation_conductor.py -> build/lib/magnum/tests/unit/conductor/handlers +copying magnum/tests/unit/conductor/handlers/test_conductor_listener.py -> build/lib/magnum/tests/unit/conductor/handlers +copying magnum/tests/unit/conductor/handlers/test_cluster_conductor.py -> build/lib/magnum/tests/unit/conductor/handlers +copying magnum/tests/unit/conductor/handlers/test_ca_conductor.py -> build/lib/magnum/tests/unit/conductor/handlers +copying magnum/tests/unit/conductor/handlers/__init__.py -> build/lib/magnum/tests/unit/conductor/handlers creating build/lib/magnum/conductor/handlers/common copying magnum/conductor/handlers/common/trust_manager.py -> build/lib/magnum/conductor/handlers/common copying magnum/conductor/handlers/common/cert_manager.py -> build/lib/magnum/conductor/handlers/common copying magnum/conductor/handlers/common/__init__.py -> build/lib/magnum/conductor/handlers/common -creating build/lib/magnum/tests/unit/template -copying magnum/tests/unit/template/test_template.py -> build/lib/magnum/tests/unit/template -copying magnum/tests/unit/template/__init__.py -> build/lib/magnum/tests/unit/template +creating build/lib/magnum/tests/unit/conductor/tasks +copying magnum/tests/unit/conductor/tasks/test_heat_tasks.py -> build/lib/magnum/tests/unit/conductor/tasks +copying magnum/tests/unit/conductor/tasks/__init__.py -> build/lib/magnum/tests/unit/conductor/tasks +creating build/lib/magnum/servicegroup +copying magnum/servicegroup/magnum_service_periodic.py -> build/lib/magnum/servicegroup +copying magnum/servicegroup/__init__.py -> build/lib/magnum/servicegroup +copying magnum/db/migration.py -> build/lib/magnum/db +copying magnum/db/api.py -> build/lib/magnum/db +copying magnum/db/__init__.py -> build/lib/magnum/db +creating build/lib/magnum/tests/unit/common/cert_manager +copying magnum/tests/unit/common/cert_manager/test_x509keypair_cert_manager.py -> build/lib/magnum/tests/unit/common/cert_manager +copying magnum/tests/unit/common/cert_manager/test_local.py -> build/lib/magnum/tests/unit/common/cert_manager +copying magnum/tests/unit/common/cert_manager/test_cert_manager.py -> build/lib/magnum/tests/unit/common/cert_manager +copying magnum/tests/unit/common/cert_manager/test_barbican.py -> build/lib/magnum/tests/unit/common/cert_manager +copying magnum/tests/unit/common/cert_manager/__init__.py -> build/lib/magnum/tests/unit/common/cert_manager +copying magnum/tests/functional/python_client_base.py -> build/lib/magnum/tests/functional +copying magnum/tests/functional/__init__.py -> build/lib/magnum/tests/functional +creating build/lib/magnum/tests/unit/conductor/handlers/common +copying magnum/tests/unit/conductor/handlers/common/test_trust_manager.py -> build/lib/magnum/tests/unit/conductor/handlers/common +copying magnum/tests/unit/conductor/handlers/common/test_cert_manager.py -> build/lib/magnum/tests/unit/conductor/handlers/common +copying magnum/tests/unit/conductor/handlers/common/__init__.py -> build/lib/magnum/tests/unit/conductor/handlers/common +copying magnum/conductor/utils.py -> build/lib/magnum/conductor +copying magnum/conductor/scale_manager.py -> build/lib/magnum/conductor +copying magnum/conductor/monitors.py -> build/lib/magnum/conductor +copying magnum/conductor/k8s_api.py -> build/lib/magnum/conductor +copying magnum/conductor/api.py -> build/lib/magnum/conductor +copying magnum/conductor/__init__.py -> build/lib/magnum/conductor +creating build/lib/magnum/tests/unit/conf +copying magnum/tests/unit/conf/test_conf.py -> build/lib/magnum/tests/unit/conf +copying magnum/tests/unit/conf/__init__.py -> build/lib/magnum/tests/unit/conf +creating build/lib/magnum/drivers/k8s_fedora_coreos_v1 +copying magnum/drivers/k8s_fedora_coreos_v1/version.py -> build/lib/magnum/drivers/k8s_fedora_coreos_v1 +copying magnum/drivers/k8s_fedora_coreos_v1/template_def.py -> build/lib/magnum/drivers/k8s_fedora_coreos_v1 +copying magnum/drivers/k8s_fedora_coreos_v1/driver.py -> build/lib/magnum/drivers/k8s_fedora_coreos_v1 +copying magnum/drivers/k8s_fedora_coreos_v1/__init__.py -> build/lib/magnum/drivers/k8s_fedora_coreos_v1 +creating build/lib/magnum/objects +copying magnum/objects/x509keypair.py -> build/lib/magnum/objects +copying magnum/objects/stats.py -> build/lib/magnum/objects +copying magnum/objects/quota.py -> build/lib/magnum/objects +copying magnum/objects/nodegroup.py -> build/lib/magnum/objects +copying magnum/objects/magnum_service.py -> build/lib/magnum/objects +copying magnum/objects/fields.py -> build/lib/magnum/objects +copying magnum/objects/federation.py -> build/lib/magnum/objects +copying magnum/objects/cluster_template.py -> build/lib/magnum/objects +copying magnum/objects/cluster.py -> build/lib/magnum/objects +copying magnum/objects/certificate.py -> build/lib/magnum/objects +copying magnum/objects/base.py -> build/lib/magnum/objects +copying magnum/objects/__init__.py -> build/lib/magnum/objects +copying magnum/tests/unit/api/utils.py -> build/lib/magnum/tests/unit/api +copying magnum/tests/unit/api/test_validation.py -> build/lib/magnum/tests/unit/api +copying magnum/tests/unit/api/test_servicegroup.py -> build/lib/magnum/tests/unit/api +copying magnum/tests/unit/api/test_hooks.py -> build/lib/magnum/tests/unit/api +copying magnum/tests/unit/api/test_expose.py -> build/lib/magnum/tests/unit/api +copying magnum/tests/unit/api/test_attr_validator.py -> build/lib/magnum/tests/unit/api +copying magnum/tests/unit/api/test_app.py -> build/lib/magnum/tests/unit/api +copying magnum/tests/unit/api/base.py -> build/lib/magnum/tests/unit/api +copying magnum/tests/unit/api/__init__.py -> build/lib/magnum/tests/unit/api +creating build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/test_utils.py -> build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/test_types.py -> build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/test_stats.py -> build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/test_quota.py -> build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/test_nodegroup.py -> build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/test_magnum_service.py -> build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/test_federation.py -> build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/test_cluster_template.py -> build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/test_cluster_actions.py -> build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/test_cluster.py -> build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/test_certificate.py -> build/lib/magnum/tests/unit/api/controllers/v1 +copying magnum/tests/unit/api/controllers/v1/__init__.py -> build/lib/magnum/tests/unit/api/controllers/v1 +creating build/lib/magnum/service +copying magnum/service/periodic.py -> build/lib/magnum/service +copying magnum/service/__init__.py -> build/lib/magnum/service +creating build/lib/magnum/common/policies +copying magnum/common/policies/stats.py -> build/lib/magnum/common/policies +copying magnum/common/policies/quota.py -> build/lib/magnum/common/policies +copying magnum/common/policies/nodegroup.py -> build/lib/magnum/common/policies +copying magnum/common/policies/magnum_service.py -> build/lib/magnum/common/policies +copying magnum/common/policies/federation.py -> build/lib/magnum/common/policies +copying magnum/common/policies/cluster_template.py -> build/lib/magnum/common/policies +copying magnum/common/policies/cluster.py -> build/lib/magnum/common/policies +copying magnum/common/policies/certificate.py -> build/lib/magnum/common/policies +copying magnum/common/policies/base.py -> build/lib/magnum/common/policies +copying magnum/common/policies/__init__.py -> build/lib/magnum/common/policies +copying magnum/tests/functional/api/v1/__init__.py -> build/lib/magnum/tests/functional/api/v1 +creating build/lib/magnum/common/cert_manager +copying magnum/common/cert_manager/x509keypair_cert_manager.py -> build/lib/magnum/common/cert_manager +copying magnum/common/cert_manager/local_cert_manager.py -> build/lib/magnum/common/cert_manager +copying magnum/common/cert_manager/cert_manager.py -> build/lib/magnum/common/cert_manager +copying magnum/common/cert_manager/barbican_cert_manager.py -> build/lib/magnum/common/cert_manager +copying magnum/common/cert_manager/__init__.py -> build/lib/magnum/common/cert_manager +creating build/lib/magnum/tests/unit/common/policies +copying magnum/tests/unit/common/policies/test_stats_policy.py -> build/lib/magnum/tests/unit/common/policies +copying magnum/tests/unit/common/policies/test_quota_policy.py -> build/lib/magnum/tests/unit/common/policies +copying magnum/tests/unit/common/policies/test_nodegroup_policy.py -> build/lib/magnum/tests/unit/common/policies +copying magnum/tests/unit/common/policies/test_magnum_service_policy.py -> build/lib/magnum/tests/unit/common/policies +copying magnum/tests/unit/common/policies/test_federation_policy.py -> build/lib/magnum/tests/unit/common/policies +copying magnum/tests/unit/common/policies/test_cluster_template_policy.py -> build/lib/magnum/tests/unit/common/policies +copying magnum/tests/unit/common/policies/test_cluster_policy.py -> build/lib/magnum/tests/unit/common/policies +copying magnum/tests/unit/common/policies/test_certificate_policy.py -> build/lib/magnum/tests/unit/common/policies +copying magnum/tests/unit/common/policies/base.py -> build/lib/magnum/tests/unit/common/policies +copying magnum/tests/unit/common/policies/__init__.py -> build/lib/magnum/tests/unit/common/policies +creating build/lib/magnum/hacking +copying magnum/hacking/checks.py -> build/lib/magnum/hacking +copying magnum/hacking/__init__.py -> build/lib/magnum/hacking creating build/lib/magnum/drivers/common copying magnum/drivers/common/k8s_scale_manager.py -> build/lib/magnum/drivers/common copying magnum/drivers/common/k8s_monitor.py -> build/lib/magnum/drivers/common copying magnum/drivers/common/driver.py -> build/lib/magnum/drivers/common copying magnum/drivers/common/__init__.py -> build/lib/magnum/drivers/common -creating build/lib/magnum/conductor/tasks -copying magnum/conductor/tasks/heat_tasks.py -> build/lib/magnum/conductor/tasks -copying magnum/conductor/tasks/__init__.py -> build/lib/magnum/conductor/tasks -copying magnum/tests/functional/api/v1/__init__.py -> build/lib/magnum/tests/functional/api/v1 -creating build/lib/magnum/hacking -copying magnum/hacking/checks.py -> build/lib/magnum/hacking -copying magnum/hacking/__init__.py -> build/lib/magnum/hacking -creating build/lib/magnum/tests/unit/conf -copying magnum/tests/unit/conf/test_conf.py -> build/lib/magnum/tests/unit/conf -copying magnum/tests/unit/conf/__init__.py -> build/lib/magnum/tests/unit/conf -creating build/lib/magnum/tests/functional/k8s -copying magnum/tests/functional/k8s/test_magnum_python_client.py -> build/lib/magnum/tests/functional/k8s -copying magnum/tests/functional/k8s/test_k8s_python_client.py -> build/lib/magnum/tests/functional/k8s -copying magnum/tests/functional/k8s/__init__.py -> build/lib/magnum/tests/functional/k8s -creating build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/types.py -> build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/stats.py -> build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/quota.py -> build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/nodegroup.py -> build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/magnum_services.py -> build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/federation.py -> build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/collection.py -> build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/cluster_template.py -> build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/cluster_actions.py -> build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/cluster.py -> build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/certificate.py -> build/lib/magnum/api/controllers/v1 -copying magnum/api/controllers/v1/__init__.py -> build/lib/magnum/api/controllers/v1 -creating build/lib/magnum/tests/unit/conductor/tasks -copying magnum/tests/unit/conductor/tasks/test_heat_tasks.py -> build/lib/magnum/tests/unit/conductor/tasks -copying magnum/tests/unit/conductor/tasks/__init__.py -> build/lib/magnum/tests/unit/conductor/tasks -creating build/lib/magnum/tests/functional/k8s_ironic -copying magnum/tests/functional/k8s_ironic/test_k8s_python_client.py -> build/lib/magnum/tests/functional/k8s_ironic -copying magnum/tests/functional/k8s_ironic/__init__.py -> build/lib/magnum/tests/functional/k8s_ironic +copying magnum/common/utils.py -> build/lib/magnum/common +copying magnum/common/urlfetch.py -> build/lib/magnum/common +copying magnum/common/short_id.py -> build/lib/magnum/common +copying magnum/common/service.py -> build/lib/magnum/common +copying magnum/common/rpc_service.py -> build/lib/magnum/common +copying magnum/common/rpc.py -> build/lib/magnum/common +copying magnum/common/profiler.py -> build/lib/magnum/common +copying magnum/common/policy.py -> build/lib/magnum/common +copying magnum/common/octavia.py -> build/lib/magnum/common +copying magnum/common/nova.py -> build/lib/magnum/common +copying magnum/common/neutron.py -> build/lib/magnum/common +copying magnum/common/name_generator.py -> build/lib/magnum/common +copying magnum/common/keystone.py -> build/lib/magnum/common +copying magnum/common/exception.py -> build/lib/magnum/common +copying magnum/common/context.py -> build/lib/magnum/common +copying magnum/common/config.py -> build/lib/magnum/common +copying magnum/common/clients.py -> build/lib/magnum/common +copying magnum/common/cinder.py -> build/lib/magnum/common +copying magnum/common/__init__.py -> build/lib/magnum/common running egg_info creating magnum.egg-info writing magnum.egg-info/PKG-INFO @@ -3302,25 +3337,18 @@ !! check.warn(importable) -creating build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates -copying magnum/drivers/k8s_fedora_coreos_v1/templates/COPYING -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates -copying magnum/drivers/k8s_fedora_coreos_v1/templates/fcct-config.yaml -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates -copying magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates -copying magnum/drivers/k8s_fedora_coreos_v1/templates/kubemaster.yaml -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates -copying magnum/drivers/k8s_fedora_coreos_v1/templates/kubeminion.yaml -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates -copying magnum/drivers/k8s_fedora_coreos_v1/templates/user_data.json -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates copying magnum/api/app.wsgi -> build/lib/magnum/api copying magnum/api/rest_api_version_history.rst -> build/lib/magnum/api -copying magnum/tests/unit/api/controllers/auth-paste.ini -> build/lib/magnum/tests/unit/api/controllers -copying magnum/tests/unit/api/controllers/auth-root-access.ini -> build/lib/magnum/tests/unit/api/controllers -copying magnum/tests/unit/api/controllers/auth-v1-access.ini -> build/lib/magnum/tests/unit/api/controllers -copying magnum/tests/unit/api/controllers/noauth-paste.ini -> build/lib/magnum/tests/unit/api/controllers creating build/lib/magnum/tests/contrib copying magnum/tests/contrib/copy_instance_logs.sh -> build/lib/magnum/tests/contrib copying magnum/tests/contrib/gate_hook.sh -> build/lib/magnum/tests/contrib copying magnum/tests/contrib/post_test_hook.sh -> build/lib/magnum/tests/contrib creating build/lib/magnum/tests/releasenotes/notes copying magnum/tests/releasenotes/notes/separated-ca-certs-299c95eea1ffd9b1.yaml -> build/lib/magnum/tests/releasenotes/notes +copying magnum/tests/unit/api/controllers/auth-paste.ini -> build/lib/magnum/tests/unit/api/controllers +copying magnum/tests/unit/api/controllers/auth-root-access.ini -> build/lib/magnum/tests/unit/api/controllers +copying magnum/tests/unit/api/controllers/auth-v1-access.ini -> build/lib/magnum/tests/unit/api/controllers +copying magnum/tests/unit/api/controllers/noauth-paste.ini -> build/lib/magnum/tests/unit/api/controllers copying magnum/db/sqlalchemy/alembic.ini -> build/lib/magnum/db/sqlalchemy creating build/lib/magnum/db/sqlalchemy/alembic copying magnum/db/sqlalchemy/alembic/README -> build/lib/magnum/db/sqlalchemy/alembic @@ -3402,6 +3430,13 @@ copying magnum/db/sqlalchemy/alembic/versions/f1d8b0ab8b8d_added_observations_to_cluster_template.py -> build/lib/magnum/db/sqlalchemy/alembic/versions copying magnum/db/sqlalchemy/alembic/versions/fb03fdef8919_rename_baymodel_to_clustertemplate.py -> build/lib/magnum/db/sqlalchemy/alembic/versions copying magnum/db/sqlalchemy/alembic/versions/fcb4efee8f8b_add_version_info_to_bay.py -> build/lib/magnum/db/sqlalchemy/alembic/versions +creating build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates +copying magnum/drivers/k8s_fedora_coreos_v1/templates/COPYING -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates +copying magnum/drivers/k8s_fedora_coreos_v1/templates/fcct-config.yaml -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates +copying magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates +copying magnum/drivers/k8s_fedora_coreos_v1/templates/kubemaster.yaml -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates +copying magnum/drivers/k8s_fedora_coreos_v1/templates/kubeminion.yaml -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates +copying magnum/drivers/k8s_fedora_coreos_v1/templates/user_data.json -> build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates creating build/lib/magnum/drivers/common/templates copying magnum/drivers/common/templates/lb_api.yaml -> build/lib/magnum/drivers/common/templates copying magnum/drivers/common/templates/lb_etcd.yaml -> build/lib/magnum/drivers/common/templates @@ -3480,10 +3515,81 @@ creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/hacking copying build/lib/magnum/hacking/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/hacking copying build/lib/magnum/hacking/checks.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/hacking +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service +copying build/lib/magnum/service/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service +copying build/lib/magnum/service/periodic.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/certificate.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/cluster.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/cluster_template.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/federation.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/fields.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/magnum_service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/nodegroup.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/quota.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/stats.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects +copying build/lib/magnum/objects/x509keypair.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/servicegroup copying build/lib/magnum/servicegroup/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/servicegroup copying build/lib/magnum/servicegroup/magnum_service_periodic.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/servicegroup +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/cinder.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/clients.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/config.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/context.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/exception.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/keystone.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/name_generator.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/neutron.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/nova.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/octavia.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/profiler.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/rpc.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/rpc_service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/short_id.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/urlfetch.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +copying build/lib/magnum/common/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager +copying build/lib/magnum/common/cert_manager/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager +copying build/lib/magnum/common/cert_manager/barbican_cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager +copying build/lib/magnum/common/cert_manager/cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager +copying build/lib/magnum/common/cert_manager/local_cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager +copying build/lib/magnum/common/cert_manager/x509keypair_cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies +copying build/lib/magnum/common/policies/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies +copying build/lib/magnum/common/policies/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies +copying build/lib/magnum/common/policies/certificate.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies +copying build/lib/magnum/common/policies/cluster.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies +copying build/lib/magnum/common/policies/cluster_template.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies +copying build/lib/magnum/common/policies/federation.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies +copying build/lib/magnum/common/policies/magnum_service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies +copying build/lib/magnum/common/policies/nodegroup.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies +copying build/lib/magnum/common/policies/quota.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies +copying build/lib/magnum/common/policies/stats.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509 +copying build/lib/magnum/common/x509/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509 +copying build/lib/magnum/common/x509/extensions.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509 +copying build/lib/magnum/common/x509/operations.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509 +copying build/lib/magnum/common/x509/validator.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509 +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd +copying build/lib/magnum/cmd/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd +copying build/lib/magnum/cmd/api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd +copying build/lib/magnum/cmd/conductor.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd +copying build/lib/magnum/cmd/db_manage.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd +copying build/lib/magnum/cmd/driver_manage.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd +copying build/lib/magnum/cmd/status.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor +copying build/lib/magnum/conductor/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor +copying build/lib/magnum/conductor/api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor +copying build/lib/magnum/conductor/k8s_api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor +copying build/lib/magnum/conductor/monitors.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor +copying build/lib/magnum/conductor/scale_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor +copying build/lib/magnum/conductor/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/tasks copying build/lib/magnum/conductor/tasks/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/tasks copying build/lib/magnum/conductor/tasks/heat_tasks.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/tasks @@ -3499,26 +3605,10 @@ copying build/lib/magnum/conductor/handlers/federation_conductor.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/handlers copying build/lib/magnum/conductor/handlers/indirection_api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/handlers copying build/lib/magnum/conductor/handlers/nodegroup_conductor.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/handlers -copying build/lib/magnum/conductor/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor -copying build/lib/magnum/conductor/api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor -copying build/lib/magnum/conductor/k8s_api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor -copying build/lib/magnum/conductor/monitors.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor -copying build/lib/magnum/conductor/scale_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor -copying build/lib/magnum/conductor/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/certificate.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/cluster.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/cluster_template.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/federation.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/fields.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/magnum_service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/nodegroup.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/quota.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/stats.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects -copying build/lib/magnum/objects/x509keypair.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db +copying build/lib/magnum/db/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db +copying build/lib/magnum/db/api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db +copying build/lib/magnum/db/migration.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/alembic creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/alembic/versions @@ -3605,80 +3695,6 @@ copying build/lib/magnum/db/sqlalchemy/api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy copying build/lib/magnum/db/sqlalchemy/migration.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy copying build/lib/magnum/db/sqlalchemy/models.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy -copying build/lib/magnum/db/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db -copying build/lib/magnum/db/api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db -copying build/lib/magnum/db/migration.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/barbican.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/certificates.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/cinder.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/cluster.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/cluster_heat.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/cluster_templates.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/conductor.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/database.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/docker_registry.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/drivers.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/glance.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/heat.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/keystone.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/kubernetes.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/magnum_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/neutron.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/nova.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/octavia.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/opts.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/paths.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/profiler.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/quota.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/rpc.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/services.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/trust.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/x509.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/conf/docker.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf -copying build/lib/magnum/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum -copying build/lib/magnum/i18n.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum -copying build/lib/magnum/version.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/rest_api_version_history.rst -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/app.wsgi -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware -copying build/lib/magnum/api/middleware/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware -copying build/lib/magnum/api/middleware/auth_token.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware -copying build/lib/magnum/api/middleware/parsable_error.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware -copying build/lib/magnum/api/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/app.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/attr_validator.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/config.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/expose.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/hooks.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/http_error.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/servicegroup.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/validation.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -copying build/lib/magnum/api/versioned_method.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/certificate.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/cluster.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/cluster_actions.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/cluster_template.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/collection.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/federation.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/magnum_services.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/nodegroup.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/quota.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/stats.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/v1/types.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 -copying build/lib/magnum/api/controllers/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers -copying build/lib/magnum/api/controllers/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers -copying build/lib/magnum/api/controllers/link.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers -copying build/lib/magnum/api/controllers/root.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers -copying build/lib/magnum/api/controllers/versions.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/templates @@ -3758,14 +3774,6 @@ copying build/lib/magnum/drivers/common/driver.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common copying build/lib/magnum/drivers/common/k8s_monitor.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common copying build/lib/magnum/drivers/common/k8s_scale_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common -copying build/lib/magnum/drivers/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat -copying build/lib/magnum/drivers/heat/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat -copying build/lib/magnum/drivers/heat/driver.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat -copying build/lib/magnum/drivers/heat/k8s_coreos_template_def.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat -copying build/lib/magnum/drivers/heat/k8s_fedora_template_def.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat -copying build/lib/magnum/drivers/heat/k8s_template_def.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat -copying build/lib/magnum/drivers/heat/template_def.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1 creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/templates copying build/lib/magnum/drivers/k8s_fedora_coreos_v1/templates/user_data.json -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/templates @@ -3778,58 +3786,85 @@ copying build/lib/magnum/drivers/k8s_fedora_coreos_v1/driver.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1 copying build/lib/magnum/drivers/k8s_fedora_coreos_v1/template_def.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1 copying build/lib/magnum/drivers/k8s_fedora_coreos_v1/version.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1 -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service -copying build/lib/magnum/service/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service -copying build/lib/magnum/service/periodic.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509 -copying build/lib/magnum/common/x509/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509 -copying build/lib/magnum/common/x509/extensions.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509 -copying build/lib/magnum/common/x509/operations.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509 -copying build/lib/magnum/common/x509/validator.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509 -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies -copying build/lib/magnum/common/policies/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies -copying build/lib/magnum/common/policies/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies -copying build/lib/magnum/common/policies/certificate.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies -copying build/lib/magnum/common/policies/cluster.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies -copying build/lib/magnum/common/policies/cluster_template.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies -copying build/lib/magnum/common/policies/federation.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies -copying build/lib/magnum/common/policies/magnum_service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies -copying build/lib/magnum/common/policies/nodegroup.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies -copying build/lib/magnum/common/policies/quota.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies -copying build/lib/magnum/common/policies/stats.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies -copying build/lib/magnum/common/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/cinder.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/clients.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/config.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/context.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/exception.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/keystone.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/name_generator.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/neutron.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/nova.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/octavia.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/profiler.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/rpc.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/rpc_service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/short_id.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/urlfetch.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -copying build/lib/magnum/common/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager -copying build/lib/magnum/common/cert_manager/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager -copying build/lib/magnum/common/cert_manager/barbican_cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager -copying build/lib/magnum/common/cert_manager/cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager -copying build/lib/magnum/common/cert_manager/local_cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager -copying build/lib/magnum/common/cert_manager/x509keypair_cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd -copying build/lib/magnum/cmd/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd -copying build/lib/magnum/cmd/api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd -copying build/lib/magnum/cmd/conductor.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd -copying build/lib/magnum/cmd/db_manage.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd -copying build/lib/magnum/cmd/driver_manage.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd -copying build/lib/magnum/cmd/status.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd +copying build/lib/magnum/drivers/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat +copying build/lib/magnum/drivers/heat/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat +copying build/lib/magnum/drivers/heat/driver.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat +copying build/lib/magnum/drivers/heat/k8s_coreos_template_def.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat +copying build/lib/magnum/drivers/heat/k8s_fedora_template_def.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat +copying build/lib/magnum/drivers/heat/k8s_template_def.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat +copying build/lib/magnum/drivers/heat/template_def.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/barbican.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/certificates.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/cinder.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/cluster.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/cluster_heat.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/cluster_templates.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/conductor.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/database.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/docker_registry.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/drivers.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/glance.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/heat.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/keystone.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/kubernetes.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/magnum_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/neutron.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/nova.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/octavia.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/opts.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/paths.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/profiler.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/quota.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/rpc.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/services.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/trust.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/x509.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/conf/docker.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf +copying build/lib/magnum/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum +copying build/lib/magnum/i18n.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum +copying build/lib/magnum/version.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/rest_api_version_history.rst -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/app.wsgi -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers +copying build/lib/magnum/api/controllers/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers +copying build/lib/magnum/api/controllers/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers +copying build/lib/magnum/api/controllers/link.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers +copying build/lib/magnum/api/controllers/root.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers +copying build/lib/magnum/api/controllers/versions.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/certificate.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/cluster.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/cluster_actions.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/cluster_template.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/collection.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/federation.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/magnum_services.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/nodegroup.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/quota.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/stats.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +copying build/lib/magnum/api/controllers/v1/types.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1 +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware +copying build/lib/magnum/api/middleware/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware +copying build/lib/magnum/api/middleware/auth_token.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware +copying build/lib/magnum/api/middleware/parsable_error.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware +copying build/lib/magnum/api/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/app.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/attr_validator.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/config.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/expose.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/hooks.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/http_error.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/servicegroup.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/validation.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api +copying build/lib/magnum/api/versioned_method.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/releasenotes creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/releasenotes/notes @@ -3847,16 +3882,18 @@ copying build/lib/magnum/tests/policy_fixture.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests copying build/lib/magnum/tests/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional +copying build/lib/magnum/tests/functional/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional +copying build/lib/magnum/tests/functional/python_client_base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_ironic copying build/lib/magnum/tests/functional/k8s_ironic/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_ironic copying build/lib/magnum/tests/functional/k8s_ironic/test_k8s_python_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_ironic +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos +copying build/lib/magnum/tests/functional/k8s_fcos/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos +copying build/lib/magnum/tests/functional/k8s_fcos/test_k8s_python_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s copying build/lib/magnum/tests/functional/k8s/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s copying build/lib/magnum/tests/functional/k8s/test_k8s_python_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s copying build/lib/magnum/tests/functional/k8s/test_magnum_python_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos -copying build/lib/magnum/tests/functional/k8s_fcos/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos -copying build/lib/magnum/tests/functional/k8s_fcos/test_k8s_python_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common copying build/lib/magnum/tests/functional/common/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common copying build/lib/magnum/tests/functional/common/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common @@ -3866,11 +3903,17 @@ copying build/lib/magnum/tests/functional/common/manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common copying build/lib/magnum/tests/functional/common/models.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common copying build/lib/magnum/tests/functional/common/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common -copying build/lib/magnum/tests/functional/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional -copying build/lib/magnum/tests/functional/python_client_base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api +copying build/lib/magnum/tests/functional/api/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api +copying build/lib/magnum/tests/functional/api/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1 copying build/lib/magnum/tests/functional/api/v1/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1 +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients +copying build/lib/magnum/tests/functional/api/v1/clients/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients +copying build/lib/magnum/tests/functional/api/v1/clients/cert_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients +copying build/lib/magnum/tests/functional/api/v1/clients/cluster_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients +copying build/lib/magnum/tests/functional/api/v1/clients/cluster_template_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients +copying build/lib/magnum/tests/functional/api/v1/clients/magnum_service_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models copying build/lib/magnum/tests/functional/api/v1/models/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models copying build/lib/magnum/tests/functional/api/v1/models/cert_model.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models @@ -3880,30 +3923,17 @@ copying build/lib/magnum/tests/functional/api/v1/models/cluster_templatepatch_model.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models copying build/lib/magnum/tests/functional/api/v1/models/clusterpatch_model.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models copying build/lib/magnum/tests/functional/api/v1/models/magnum_service_model.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients -copying build/lib/magnum/tests/functional/api/v1/clients/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients -copying build/lib/magnum/tests/functional/api/v1/clients/cert_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients -copying build/lib/magnum/tests/functional/api/v1/clients/cluster_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients -copying build/lib/magnum/tests/functional/api/v1/clients/cluster_template_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients -copying build/lib/magnum/tests/functional/api/v1/clients/magnum_service_client.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients -copying build/lib/magnum/tests/functional/api/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api -copying build/lib/magnum/tests/functional/api/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conf copying build/lib/magnum/tests/unit/conf/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conf copying build/lib/magnum/tests/unit/conf/test_conf.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conf -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template -copying build/lib/magnum/tests/unit/template/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template -copying build/lib/magnum/tests/unit/template/test_template.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service -copying build/lib/magnum/tests/unit/service/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service -copying build/lib/magnum/tests/unit/service/test_periodic.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/drivers copying build/lib/magnum/tests/unit/drivers/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/drivers copying build/lib/magnum/tests/unit/drivers/test_heat_driver.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/drivers copying build/lib/magnum/tests/unit/drivers/test_template_definition.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/drivers -copying build/lib/magnum/tests/unit/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit -copying build/lib/magnum/tests/unit/test_hacking.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service +copying build/lib/magnum/tests/unit/service/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service +copying build/lib/magnum/tests/unit/service/test_periodic.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd copying build/lib/magnum/tests/unit/cmd/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd copying build/lib/magnum/tests/unit/cmd/test_api.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd @@ -3911,18 +3941,13 @@ copying build/lib/magnum/tests/unit/cmd/test_db_manage.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd copying build/lib/magnum/tests/unit/cmd/test_driver_manage.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd copying build/lib/magnum/tests/unit/cmd/test_status.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects -copying build/lib/magnum/tests/unit/objects/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects -copying build/lib/magnum/tests/unit/objects/test_cluster.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects -copying build/lib/magnum/tests/unit/objects/test_cluster_template.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects -copying build/lib/magnum/tests/unit/objects/test_federation.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects -copying build/lib/magnum/tests/unit/objects/test_fields.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects -copying build/lib/magnum/tests/unit/objects/test_magnum_service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects -copying build/lib/magnum/tests/unit/objects/test_nodegroup.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects -copying build/lib/magnum/tests/unit/objects/test_objects.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects -copying build/lib/magnum/tests/unit/objects/test_x509keypair.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects -copying build/lib/magnum/tests/unit/objects/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template +copying build/lib/magnum/tests/unit/template/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template +copying build/lib/magnum/tests/unit/template/test_template.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy +copying build/lib/magnum/tests/unit/db/sqlalchemy/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy +copying build/lib/magnum/tests/unit/db/sqlalchemy/test_types.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy copying build/lib/magnum/tests/unit/db/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db copying build/lib/magnum/tests/unit/db/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db copying build/lib/magnum/tests/unit/db/test_cluster.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db @@ -3933,46 +3958,19 @@ copying build/lib/magnum/tests/unit/db/test_quota.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db copying build/lib/magnum/tests/unit/db/test_x509keypair.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db copying build/lib/magnum/tests/unit/db/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy -copying build/lib/magnum/tests/unit/db/sqlalchemy/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy -copying build/lib/magnum/tests/unit/db/sqlalchemy/test_types.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager -copying build/lib/magnum/tests/unit/common/cert_manager/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager -copying build/lib/magnum/tests/unit/common/cert_manager/test_barbican.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager -copying build/lib/magnum/tests/unit/common/cert_manager/test_cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager -copying build/lib/magnum/tests/unit/common/cert_manager/test_local.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager -copying build/lib/magnum/tests/unit/common/cert_manager/test_x509keypair_cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509 -copying build/lib/magnum/tests/unit/common/x509/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509 -copying build/lib/magnum/tests/unit/common/x509/test_operations.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509 -copying build/lib/magnum/tests/unit/common/x509/test_sign.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509 -copying build/lib/magnum/tests/unit/common/x509/test_validator.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509 -copying build/lib/magnum/tests/unit/common/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_clients.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_context.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_exception.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_keystone.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_neutron.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_octavia.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_profiler.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_rpc.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_short_id.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_urlfetch.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -copying build/lib/magnum/tests/unit/common/test_utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common -creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies -copying build/lib/magnum/tests/unit/common/policies/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies -copying build/lib/magnum/tests/unit/common/policies/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies -copying build/lib/magnum/tests/unit/common/policies/test_certificate_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies -copying build/lib/magnum/tests/unit/common/policies/test_cluster_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies -copying build/lib/magnum/tests/unit/common/policies/test_cluster_template_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies -copying build/lib/magnum/tests/unit/common/policies/test_federation_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies -copying build/lib/magnum/tests/unit/common/policies/test_magnum_service_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies -copying build/lib/magnum/tests/unit/common/policies/test_nodegroup_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies -copying build/lib/magnum/tests/unit/common/policies/test_quota_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies -copying build/lib/magnum/tests/unit/common/policies/test_stats_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +copying build/lib/magnum/tests/unit/objects/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +copying build/lib/magnum/tests/unit/objects/test_cluster.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +copying build/lib/magnum/tests/unit/objects/test_cluster_template.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +copying build/lib/magnum/tests/unit/objects/test_federation.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +copying build/lib/magnum/tests/unit/objects/test_fields.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +copying build/lib/magnum/tests/unit/objects/test_magnum_service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +copying build/lib/magnum/tests/unit/objects/test_nodegroup.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +copying build/lib/magnum/tests/unit/objects/test_objects.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +copying build/lib/magnum/tests/unit/objects/test_x509keypair.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +copying build/lib/magnum/tests/unit/objects/utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects +copying build/lib/magnum/tests/unit/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit +copying build/lib/magnum/tests/unit/test_hacking.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/servicegroup copying build/lib/magnum/tests/unit/servicegroup/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/servicegroup copying build/lib/magnum/tests/unit/servicegroup/test_magnum_service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/servicegroup @@ -3991,9 +3989,6 @@ copying build/lib/magnum/tests/unit/api/controllers/auth-v1-access.ini -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers copying build/lib/magnum/tests/unit/api/controllers/auth-root-access.ini -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers copying build/lib/magnum/tests/unit/api/controllers/auth-paste.ini -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers -copying build/lib/magnum/tests/unit/api/controllers/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers -copying build/lib/magnum/tests/unit/api/controllers/test_base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers -copying build/lib/magnum/tests/unit/api/controllers/test_root.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1 copying build/lib/magnum/tests/unit/api/controllers/v1/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1 copying build/lib/magnum/tests/unit/api/controllers/v1/test_certificate.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1 @@ -4007,6 +4002,46 @@ copying build/lib/magnum/tests/unit/api/controllers/v1/test_stats.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1 copying build/lib/magnum/tests/unit/api/controllers/v1/test_types.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1 copying build/lib/magnum/tests/unit/api/controllers/v1/test_utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1 +copying build/lib/magnum/tests/unit/api/controllers/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers +copying build/lib/magnum/tests/unit/api/controllers/test_base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers +copying build/lib/magnum/tests/unit/api/controllers/test_root.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +copying build/lib/magnum/tests/unit/common/policies/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +copying build/lib/magnum/tests/unit/common/policies/base.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +copying build/lib/magnum/tests/unit/common/policies/test_certificate_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +copying build/lib/magnum/tests/unit/common/policies/test_cluster_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +copying build/lib/magnum/tests/unit/common/policies/test_cluster_template_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +copying build/lib/magnum/tests/unit/common/policies/test_federation_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +copying build/lib/magnum/tests/unit/common/policies/test_magnum_service_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +copying build/lib/magnum/tests/unit/common/policies/test_nodegroup_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +copying build/lib/magnum/tests/unit/common/policies/test_quota_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +copying build/lib/magnum/tests/unit/common/policies/test_stats_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager +copying build/lib/magnum/tests/unit/common/cert_manager/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager +copying build/lib/magnum/tests/unit/common/cert_manager/test_barbican.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager +copying build/lib/magnum/tests/unit/common/cert_manager/test_cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager +copying build/lib/magnum/tests/unit/common/cert_manager/test_local.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager +copying build/lib/magnum/tests/unit/common/cert_manager/test_x509keypair_cert_manager.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager +copying build/lib/magnum/tests/unit/common/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_clients.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_context.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_exception.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_keystone.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_neutron.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_octavia.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_policy.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_profiler.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_rpc.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_service.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_short_id.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_urlfetch.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +copying build/lib/magnum/tests/unit/common/test_utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common +creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509 +copying build/lib/magnum/tests/unit/common/x509/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509 +copying build/lib/magnum/tests/unit/common/x509/test_operations.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509 +copying build/lib/magnum/tests/unit/common/x509/test_sign.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509 +copying build/lib/magnum/tests/unit/common/x509/test_validator.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509 creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conductor creating /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conductor/tasks copying build/lib/magnum/tests/unit/conductor/tasks/__init__.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conductor/tasks @@ -4032,8 +4067,72 @@ copying build/lib/magnum/tests/unit/conductor/test_utils.py -> /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conductor byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/hacking/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/hacking/checks.py to checks.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service/periodic.py to periodic.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/base.py to base.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/certificate.py to certificate.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/cluster.py to cluster.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/cluster_template.py to cluster_template.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/federation.py to federation.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/fields.py to fields.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/magnum_service.py to magnum_service.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/nodegroup.py to nodegroup.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/quota.py to quota.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/stats.py to stats.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/x509keypair.py to x509keypair.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/servicegroup/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/servicegroup/magnum_service_periodic.py to magnum_service_periodic.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cinder.py to cinder.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/clients.py to clients.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/config.py to config.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/context.py to context.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/exception.py to exception.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/keystone.py to keystone.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/name_generator.py to name_generator.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/neutron.py to neutron.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/nova.py to nova.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/octavia.py to octavia.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policy.py to policy.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/profiler.py to profiler.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/rpc.py to rpc.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/rpc_service.py to rpc_service.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/service.py to service.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/short_id.py to short_id.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/urlfetch.py to urlfetch.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/utils.py to utils.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/barbican_cert_manager.py to barbican_cert_manager.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/cert_manager.py to cert_manager.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/local_cert_manager.py to local_cert_manager.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/x509keypair_cert_manager.py to x509keypair_cert_manager.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/base.py to base.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/certificate.py to certificate.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/cluster.py to cluster.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/cluster_template.py to cluster_template.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/federation.py to federation.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/magnum_service.py to magnum_service.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/nodegroup.py to nodegroup.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/quota.py to quota.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/stats.py to stats.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/extensions.py to extensions.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/operations.py to operations.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/validator.py to validator.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/api.py to api.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/conductor.py to conductor.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/db_manage.py to db_manage.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/driver_manage.py to driver_manage.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/status.py to status.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/api.py to api.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/k8s_api.py to k8s_api.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/monitors.py to monitors.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/scale_manager.py to scale_manager.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/utils.py to utils.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/tasks/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/tasks/heat_tasks.py to heat_tasks.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/handlers/common/__init__.py to __init__.cpython-313.pyc @@ -4046,24 +4145,9 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/handlers/federation_conductor.py to federation_conductor.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/handlers/indirection_api.py to indirection_api.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/handlers/nodegroup_conductor.py to nodegroup_conductor.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/api.py to api.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/k8s_api.py to k8s_api.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/monitors.py to monitors.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/scale_manager.py to scale_manager.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/utils.py to utils.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/base.py to base.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/certificate.py to certificate.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/cluster.py to cluster.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/cluster_template.py to cluster_template.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/federation.py to federation.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/fields.py to fields.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/magnum_service.py to magnum_service.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/nodegroup.py to nodegroup.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/quota.py to quota.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/stats.py to stats.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/x509keypair.py to x509keypair.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/api.py to api.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/migration.py to migration.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/alembic/versions/fcb4efee8f8b_add_version_info_to_bay.py to fcb4efee8f8b_add_version_info_to_bay.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/alembic/versions/fb03fdef8919_rename_baymodel_to_clustertemplate.py to fb03fdef8919_rename_baymodel_to_clustertemplate.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/alembic/versions/f1d8b0ab8b8d_added_observations_to_cluster_template.py to f1d8b0ab8b8d_added_observations_to_cluster_template.cpython-313.pyc @@ -4144,9 +4228,21 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/api.py to api.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/migration.py to migration.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/models.py to models.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/api.py to api.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/migration.py to migration.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/driver.py to driver.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/k8s_monitor.py to k8s_monitor.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/k8s_scale_manager.py to k8s_scale_manager.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/driver.py to driver.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/template_def.py to template_def.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/version.py to version.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/driver.py to driver.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_coreos_template_def.py to k8s_coreos_template_def.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_fedora_template_def.py to k8s_fedora_template_def.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_template_def.py to k8s_template_def.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/template_def.py to template_def.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf/api.py to api.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf/barbican.py to barbican.cpython-313.pyc @@ -4180,6 +4276,23 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/i18n.py to i18n.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/version.py to version.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/base.py to base.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/link.py to link.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/root.py to root.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/versions.py to versions.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/certificate.py to certificate.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster.py to cluster.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster_actions.py to cluster_actions.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster_template.py to cluster_template.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/collection.py to collection.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/federation.py to federation.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/magnum_services.py to magnum_services.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/nodegroup.py to nodegroup.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/quota.py to quota.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/stats.py to stats.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/types.py to types.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware/auth_token.py to auth_token.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware/parsable_error.py to parsable_error.cpython-313.pyc @@ -4194,84 +4307,6 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/utils.py to utils.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/validation.py to validation.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/versioned_method.py to versioned_method.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/certificate.py to certificate.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster.py to cluster.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster_actions.py to cluster_actions.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster_template.py to cluster_template.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/collection.py to collection.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/federation.py to federation.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/magnum_services.py to magnum_services.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/nodegroup.py to nodegroup.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/quota.py to quota.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/stats.py to stats.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/types.py to types.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/base.py to base.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/link.py to link.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/root.py to root.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/versions.py to versions.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/driver.py to driver.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/k8s_monitor.py to k8s_monitor.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/k8s_scale_manager.py to k8s_scale_manager.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/driver.py to driver.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_coreos_template_def.py to k8s_coreos_template_def.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_fedora_template_def.py to k8s_fedora_template_def.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_template_def.py to k8s_template_def.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/template_def.py to template_def.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/driver.py to driver.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/template_def.py to template_def.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/version.py to version.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service/periodic.py to periodic.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/extensions.py to extensions.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/operations.py to operations.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/validator.py to validator.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/base.py to base.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/certificate.py to certificate.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/cluster.py to cluster.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/cluster_template.py to cluster_template.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/federation.py to federation.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/magnum_service.py to magnum_service.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/nodegroup.py to nodegroup.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/quota.py to quota.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/stats.py to stats.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cinder.py to cinder.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/clients.py to clients.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/config.py to config.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/context.py to context.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/exception.py to exception.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/keystone.py to keystone.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/name_generator.py to name_generator.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/neutron.py to neutron.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/nova.py to nova.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/octavia.py to octavia.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policy.py to policy.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/profiler.py to profiler.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/rpc.py to rpc.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/rpc_service.py to rpc_service.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/service.py to service.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/short_id.py to short_id.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/urlfetch.py to urlfetch.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/utils.py to utils.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/barbican_cert_manager.py to barbican_cert_manager.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/cert_manager.py to cert_manager.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/local_cert_manager.py to local_cert_manager.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/x509keypair_cert_manager.py to x509keypair_cert_manager.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/api.py to api.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/conductor.py to conductor.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/db_manage.py to db_manage.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/driver_manage.py to driver_manage.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/status.py to status.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/base.py to base.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/conf_fixture.py to conf_fixture.cpython-313.pyc @@ -4280,13 +4315,15 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/output_fixture.py to output_fixture.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/policy_fixture.py to policy_fixture.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/utils.py to utils.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/python_client_base.py to python_client_base.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_ironic/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_ironic/test_k8s_python_client.py to test_k8s_python_client.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos/test_k8s_python_client.py to test_k8s_python_client.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s/test_k8s_python_client.py to test_k8s_python_client.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s/test_magnum_python_client.py to test_magnum_python_client.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos/test_k8s_python_client.py to test_k8s_python_client.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/base.py to base.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/client.py to client.cpython-313.pyc @@ -4295,9 +4332,14 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/manager.py to manager.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/models.py to models.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/utils.py to utils.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/python_client_base.py to python_client_base.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/base.py to base.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cert_client.py to cert_client.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cluster_client.py to cluster_client.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cluster_template_client.py to cluster_template_client.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/magnum_service_client.py to magnum_service_client.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/cert_model.py to cert_model.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/cluster_id_model.py to cluster_id_model.cpython-313.pyc @@ -4306,40 +4348,23 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/cluster_templatepatch_model.py to cluster_templatepatch_model.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/clusterpatch_model.py to clusterpatch_model.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/magnum_service_model.py to magnum_service_model.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cert_client.py to cert_client.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cluster_client.py to cluster_client.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cluster_template_client.py to cluster_template_client.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/magnum_service_client.py to magnum_service_client.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/base.py to base.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conf/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conf/test_conf.py to test_conf.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template/test_template.py to test_template.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service/test_periodic.py to test_periodic.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/drivers/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/drivers/test_heat_driver.py to test_heat_driver.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/drivers/test_template_definition.py to test_template_definition.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/test_hacking.py to test_hacking.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service/test_periodic.py to test_periodic.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/test_api.py to test_api.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/test_conductor.py to test_conductor.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/test_db_manage.py to test_db_manage.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/test_driver_manage.py to test_driver_manage.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/test_status.py to test_status.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_cluster.py to test_cluster.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_cluster_template.py to test_cluster_template.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_federation.py to test_federation.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_fields.py to test_fields.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_magnum_service.py to test_magnum_service.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_nodegroup.py to test_nodegroup.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_objects.py to test_objects.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_x509keypair.py to test_x509keypair.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/utils.py to utils.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template/test_template.py to test_template.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy/test_types.py to test_types.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/base.py to base.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/test_cluster.py to test_cluster.cpython-313.pyc @@ -4350,41 +4375,18 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/test_quota.py to test_quota.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/test_x509keypair.py to test_x509keypair.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/utils.py to utils.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy/test_types.py to test_types.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_barbican.py to test_barbican.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_cert_manager.py to test_cert_manager.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_local.py to test_local.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_x509keypair_cert_manager.py to test_x509keypair_cert_manager.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_operations.py to test_operations.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_sign.py to test_sign.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_validator.py to test_validator.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_clients.py to test_clients.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_context.py to test_context.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_exception.py to test_exception.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_keystone.py to test_keystone.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_neutron.py to test_neutron.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_octavia.py to test_octavia.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_policy.py to test_policy.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_profiler.py to test_profiler.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_rpc.py to test_rpc.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_service.py to test_service.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_short_id.py to test_short_id.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_urlfetch.py to test_urlfetch.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_utils.py to test_utils.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/base.py to base.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_certificate_policy.py to test_certificate_policy.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_cluster_policy.py to test_cluster_policy.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_cluster_template_policy.py to test_cluster_template_policy.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_federation_policy.py to test_federation_policy.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_magnum_service_policy.py to test_magnum_service_policy.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_nodegroup_policy.py to test_nodegroup_policy.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_quota_policy.py to test_quota_policy.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_stats_policy.py to test_stats_policy.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_cluster.py to test_cluster.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_cluster_template.py to test_cluster_template.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_federation.py to test_federation.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_fields.py to test_fields.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_magnum_service.py to test_magnum_service.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_nodegroup.py to test_nodegroup.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_objects.py to test_objects.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_x509keypair.py to test_x509keypair.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/utils.py to utils.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/test_hacking.py to test_hacking.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/servicegroup/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/servicegroup/test_magnum_service.py to test_magnum_service.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/__init__.py to __init__.cpython-313.pyc @@ -4396,9 +4398,6 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/test_servicegroup.py to test_servicegroup.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/test_validation.py to test_validation.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/utils.py to utils.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/test_base.py to test_base.cpython-313.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/test_root.py to test_root.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/test_certificate.py to test_certificate.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/test_cluster.py to test_cluster.cpython-313.pyc @@ -4411,6 +4410,42 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/test_stats.py to test_stats.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/test_types.py to test_types.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/test_utils.py to test_utils.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/test_base.py to test_base.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/test_root.py to test_root.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/base.py to base.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_certificate_policy.py to test_certificate_policy.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_cluster_policy.py to test_cluster_policy.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_cluster_template_policy.py to test_cluster_template_policy.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_federation_policy.py to test_federation_policy.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_magnum_service_policy.py to test_magnum_service_policy.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_nodegroup_policy.py to test_nodegroup_policy.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_quota_policy.py to test_quota_policy.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_stats_policy.py to test_stats_policy.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_barbican.py to test_barbican.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_cert_manager.py to test_cert_manager.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_local.py to test_local.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_x509keypair_cert_manager.py to test_x509keypair_cert_manager.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_clients.py to test_clients.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_context.py to test_context.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_exception.py to test_exception.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_keystone.py to test_keystone.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_neutron.py to test_neutron.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_octavia.py to test_octavia.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_policy.py to test_policy.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_profiler.py to test_profiler.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_rpc.py to test_rpc.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_service.py to test_service.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_short_id.py to test_short_id.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_urlfetch.py to test_urlfetch.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_utils.py to test_utils.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_operations.py to test_operations.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_sign.py to test_sign.cpython-313.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_validator.py to test_validator.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conductor/tasks/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conductor/tasks/test_heat_tasks.py to test_heat_tasks.cpython-313.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conductor/handlers/common/__init__.py to __init__.cpython-313.pyc @@ -4906,8 +4941,72 @@ running install_lib byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/hacking/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/hacking/checks.py to checks.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service/periodic.py to periodic.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/base.py to base.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/certificate.py to certificate.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/cluster.py to cluster.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/cluster_template.py to cluster_template.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/federation.py to federation.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/fields.py to fields.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/magnum_service.py to magnum_service.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/nodegroup.py to nodegroup.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/quota.py to quota.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/stats.py to stats.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/x509keypair.py to x509keypair.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/servicegroup/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/servicegroup/magnum_service_periodic.py to magnum_service_periodic.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cinder.py to cinder.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/clients.py to clients.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/config.py to config.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/context.py to context.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/exception.py to exception.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/keystone.py to keystone.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/name_generator.py to name_generator.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/neutron.py to neutron.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/nova.py to nova.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/octavia.py to octavia.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policy.py to policy.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/profiler.py to profiler.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/rpc.py to rpc.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/rpc_service.py to rpc_service.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/service.py to service.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/short_id.py to short_id.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/urlfetch.py to urlfetch.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/utils.py to utils.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/barbican_cert_manager.py to barbican_cert_manager.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/cert_manager.py to cert_manager.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/local_cert_manager.py to local_cert_manager.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/x509keypair_cert_manager.py to x509keypair_cert_manager.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/base.py to base.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/certificate.py to certificate.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/cluster.py to cluster.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/cluster_template.py to cluster_template.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/federation.py to federation.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/magnum_service.py to magnum_service.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/nodegroup.py to nodegroup.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/quota.py to quota.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/stats.py to stats.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/extensions.py to extensions.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/operations.py to operations.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/validator.py to validator.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/api.py to api.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/conductor.py to conductor.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/db_manage.py to db_manage.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/driver_manage.py to driver_manage.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/status.py to status.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/api.py to api.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/k8s_api.py to k8s_api.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/monitors.py to monitors.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/scale_manager.py to scale_manager.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/utils.py to utils.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/tasks/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/tasks/heat_tasks.py to heat_tasks.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/handlers/common/__init__.py to __init__.cpython-312.pyc @@ -4920,24 +5019,9 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/handlers/federation_conductor.py to federation_conductor.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/handlers/indirection_api.py to indirection_api.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/handlers/nodegroup_conductor.py to nodegroup_conductor.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/api.py to api.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/k8s_api.py to k8s_api.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/monitors.py to monitors.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/scale_manager.py to scale_manager.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conductor/utils.py to utils.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/base.py to base.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/certificate.py to certificate.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/cluster.py to cluster.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/cluster_template.py to cluster_template.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/federation.py to federation.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/fields.py to fields.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/magnum_service.py to magnum_service.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/nodegroup.py to nodegroup.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/quota.py to quota.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/stats.py to stats.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/objects/x509keypair.py to x509keypair.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/api.py to api.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/migration.py to migration.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/alembic/versions/fcb4efee8f8b_add_version_info_to_bay.py to fcb4efee8f8b_add_version_info_to_bay.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/alembic/versions/fb03fdef8919_rename_baymodel_to_clustertemplate.py to fb03fdef8919_rename_baymodel_to_clustertemplate.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/alembic/versions/f1d8b0ab8b8d_added_observations_to_cluster_template.py to f1d8b0ab8b8d_added_observations_to_cluster_template.cpython-312.pyc @@ -5018,9 +5102,21 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/api.py to api.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/migration.py to migration.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/sqlalchemy/models.py to models.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/api.py to api.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/db/migration.py to migration.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/driver.py to driver.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/k8s_monitor.py to k8s_monitor.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/k8s_scale_manager.py to k8s_scale_manager.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/driver.py to driver.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/template_def.py to template_def.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/version.py to version.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/driver.py to driver.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_coreos_template_def.py to k8s_coreos_template_def.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_fedora_template_def.py to k8s_fedora_template_def.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_template_def.py to k8s_template_def.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/template_def.py to template_def.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf/api.py to api.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/conf/barbican.py to barbican.cpython-312.pyc @@ -5054,6 +5150,23 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/i18n.py to i18n.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/version.py to version.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/base.py to base.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/link.py to link.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/root.py to root.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/versions.py to versions.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/certificate.py to certificate.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster.py to cluster.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster_actions.py to cluster_actions.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster_template.py to cluster_template.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/collection.py to collection.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/federation.py to federation.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/magnum_services.py to magnum_services.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/nodegroup.py to nodegroup.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/quota.py to quota.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/stats.py to stats.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/types.py to types.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware/auth_token.py to auth_token.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/middleware/parsable_error.py to parsable_error.cpython-312.pyc @@ -5068,84 +5181,6 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/utils.py to utils.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/validation.py to validation.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/versioned_method.py to versioned_method.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/certificate.py to certificate.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster.py to cluster.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster_actions.py to cluster_actions.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/cluster_template.py to cluster_template.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/collection.py to collection.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/federation.py to federation.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/magnum_services.py to magnum_services.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/nodegroup.py to nodegroup.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/quota.py to quota.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/stats.py to stats.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/v1/types.py to types.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/base.py to base.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/link.py to link.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/root.py to root.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/api/controllers/versions.py to versions.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/driver.py to driver.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/k8s_monitor.py to k8s_monitor.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/common/k8s_scale_manager.py to k8s_scale_manager.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/driver.py to driver.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_coreos_template_def.py to k8s_coreos_template_def.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_fedora_template_def.py to k8s_fedora_template_def.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/k8s_template_def.py to k8s_template_def.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/heat/template_def.py to template_def.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/driver.py to driver.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/template_def.py to template_def.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/drivers/k8s_fedora_coreos_v1/version.py to version.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/service/periodic.py to periodic.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/extensions.py to extensions.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/operations.py to operations.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/x509/validator.py to validator.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/base.py to base.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/certificate.py to certificate.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/cluster.py to cluster.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/cluster_template.py to cluster_template.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/federation.py to federation.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/magnum_service.py to magnum_service.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/nodegroup.py to nodegroup.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/quota.py to quota.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policies/stats.py to stats.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cinder.py to cinder.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/clients.py to clients.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/config.py to config.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/context.py to context.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/exception.py to exception.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/keystone.py to keystone.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/name_generator.py to name_generator.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/neutron.py to neutron.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/nova.py to nova.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/octavia.py to octavia.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/policy.py to policy.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/profiler.py to profiler.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/rpc.py to rpc.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/rpc_service.py to rpc_service.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/service.py to service.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/short_id.py to short_id.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/urlfetch.py to urlfetch.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/utils.py to utils.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/barbican_cert_manager.py to barbican_cert_manager.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/cert_manager.py to cert_manager.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/local_cert_manager.py to local_cert_manager.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/common/cert_manager/x509keypair_cert_manager.py to x509keypair_cert_manager.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/api.py to api.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/conductor.py to conductor.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/db_manage.py to db_manage.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/driver_manage.py to driver_manage.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/cmd/status.py to status.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/base.py to base.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/conf_fixture.py to conf_fixture.cpython-312.pyc @@ -5154,13 +5189,15 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/output_fixture.py to output_fixture.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/policy_fixture.py to policy_fixture.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/utils.py to utils.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/python_client_base.py to python_client_base.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_ironic/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_ironic/test_k8s_python_client.py to test_k8s_python_client.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos/test_k8s_python_client.py to test_k8s_python_client.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s/test_k8s_python_client.py to test_k8s_python_client.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s/test_magnum_python_client.py to test_magnum_python_client.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/k8s_fcos/test_k8s_python_client.py to test_k8s_python_client.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/base.py to base.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/client.py to client.cpython-312.pyc @@ -5169,9 +5206,14 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/manager.py to manager.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/models.py to models.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/common/utils.py to utils.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/python_client_base.py to python_client_base.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/base.py to base.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cert_client.py to cert_client.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cluster_client.py to cluster_client.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cluster_template_client.py to cluster_template_client.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/magnum_service_client.py to magnum_service_client.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/cert_model.py to cert_model.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/cluster_id_model.py to cluster_id_model.cpython-312.pyc @@ -5180,40 +5222,23 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/cluster_templatepatch_model.py to cluster_templatepatch_model.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/clusterpatch_model.py to clusterpatch_model.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/models/magnum_service_model.py to magnum_service_model.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cert_client.py to cert_client.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cluster_client.py to cluster_client.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/cluster_template_client.py to cluster_template_client.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/v1/clients/magnum_service_client.py to magnum_service_client.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/functional/api/base.py to base.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conf/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conf/test_conf.py to test_conf.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template/test_template.py to test_template.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service/test_periodic.py to test_periodic.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/drivers/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/drivers/test_heat_driver.py to test_heat_driver.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/drivers/test_template_definition.py to test_template_definition.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/test_hacking.py to test_hacking.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/service/test_periodic.py to test_periodic.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/test_api.py to test_api.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/test_conductor.py to test_conductor.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/test_db_manage.py to test_db_manage.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/test_driver_manage.py to test_driver_manage.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/cmd/test_status.py to test_status.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_cluster.py to test_cluster.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_cluster_template.py to test_cluster_template.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_federation.py to test_federation.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_fields.py to test_fields.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_magnum_service.py to test_magnum_service.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_nodegroup.py to test_nodegroup.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_objects.py to test_objects.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_x509keypair.py to test_x509keypair.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/utils.py to utils.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/template/test_template.py to test_template.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy/test_types.py to test_types.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/base.py to base.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/test_cluster.py to test_cluster.cpython-312.pyc @@ -5224,41 +5249,18 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/test_quota.py to test_quota.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/test_x509keypair.py to test_x509keypair.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/utils.py to utils.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/db/sqlalchemy/test_types.py to test_types.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_barbican.py to test_barbican.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_cert_manager.py to test_cert_manager.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_local.py to test_local.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_x509keypair_cert_manager.py to test_x509keypair_cert_manager.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_operations.py to test_operations.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_sign.py to test_sign.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_validator.py to test_validator.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_clients.py to test_clients.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_context.py to test_context.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_exception.py to test_exception.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_keystone.py to test_keystone.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_neutron.py to test_neutron.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_octavia.py to test_octavia.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_policy.py to test_policy.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_profiler.py to test_profiler.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_rpc.py to test_rpc.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_service.py to test_service.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_short_id.py to test_short_id.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_urlfetch.py to test_urlfetch.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_utils.py to test_utils.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/base.py to base.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_certificate_policy.py to test_certificate_policy.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_cluster_policy.py to test_cluster_policy.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_cluster_template_policy.py to test_cluster_template_policy.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_federation_policy.py to test_federation_policy.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_magnum_service_policy.py to test_magnum_service_policy.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_nodegroup_policy.py to test_nodegroup_policy.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_quota_policy.py to test_quota_policy.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_stats_policy.py to test_stats_policy.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_cluster.py to test_cluster.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_cluster_template.py to test_cluster_template.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_federation.py to test_federation.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_fields.py to test_fields.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_magnum_service.py to test_magnum_service.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_nodegroup.py to test_nodegroup.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_objects.py to test_objects.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/test_x509keypair.py to test_x509keypair.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/objects/utils.py to utils.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/test_hacking.py to test_hacking.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/servicegroup/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/servicegroup/test_magnum_service.py to test_magnum_service.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/__init__.py to __init__.cpython-312.pyc @@ -5270,9 +5272,6 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/test_servicegroup.py to test_servicegroup.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/test_validation.py to test_validation.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/utils.py to utils.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/test_base.py to test_base.cpython-312.pyc -byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/test_root.py to test_root.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/test_certificate.py to test_certificate.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/test_cluster.py to test_cluster.cpython-312.pyc @@ -5285,6 +5284,42 @@ byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/test_stats.py to test_stats.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/test_types.py to test_types.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/v1/test_utils.py to test_utils.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/test_base.py to test_base.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/api/controllers/test_root.py to test_root.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/base.py to base.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_certificate_policy.py to test_certificate_policy.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_cluster_policy.py to test_cluster_policy.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_cluster_template_policy.py to test_cluster_template_policy.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_federation_policy.py to test_federation_policy.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_magnum_service_policy.py to test_magnum_service_policy.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_nodegroup_policy.py to test_nodegroup_policy.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_quota_policy.py to test_quota_policy.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/policies/test_stats_policy.py to test_stats_policy.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_barbican.py to test_barbican.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_cert_manager.py to test_cert_manager.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_local.py to test_local.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/cert_manager/test_x509keypair_cert_manager.py to test_x509keypair_cert_manager.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_clients.py to test_clients.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_context.py to test_context.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_exception.py to test_exception.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_keystone.py to test_keystone.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_neutron.py to test_neutron.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_octavia.py to test_octavia.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_policy.py to test_policy.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_profiler.py to test_profiler.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_rpc.py to test_rpc.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_service.py to test_service.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_short_id.py to test_short_id.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_urlfetch.py to test_urlfetch.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/test_utils.py to test_utils.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_operations.py to test_operations.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_sign.py to test_sign.cpython-312.pyc +byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/common/x509/test_validator.py to test_validator.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conductor/tasks/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conductor/tasks/test_heat_tasks.py to test_heat_tasks.cpython-312.pyc byte-compiling /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages/magnum/tests/unit/conductor/handlers/common/__init__.py to __init__.cpython-312.pyc @@ -5326,38 +5361,57 @@ + PYTHON3S=disabled + TEST_PARALLEL_OPT=--parallel + TEST_SERIAL_OPT= -+ echo WARNING: --no-py2 is deprecated, and always on. ++ for i in $@ ++ case "${1}" in ++ echo 'WARNING: --no-py2 is deprecated, and always on.' WARNING: --no-py2 is deprecated, and always on. + shift -+ py3versions -vr -+ PYTHON3S=3.13 3.12 -+ [ yes = no ] -+ [ no = yes ] -+ [ 3.13 = disabled ] -+ echo 3.13 -+ cut -d. -f1 ++ for i in $@ ++ case "${1}" in ++ for i in $@ ++ case "${1}" in ++ for i in $@ ++ case "${1}" in +++ py3versions -vr ++ PYTHON3S='3.13 3.12' ++ '[' yes = no ']' ++ '[' no = yes ']' ++ for pyvers in ${PYTHON3S} ++ '[' 3.13 = disabled ']' +++ cut -d. -f1 +++ echo 3.13 + PYMAJOR=3 -+ echo ===> Testing with python (python3) ++ echo '===> Testing with python (python3)' ===> Testing with python (python3) -+ pwd -+ [ -d /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages ] -+ [ -z ] -+ pwd -+ echo Implicitly adding PYTHONPATH=/build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages +++ pwd ++ '[' -d /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages ']' ++ '[' -z '' ']' +++ pwd ++ echo 'Implicitly adding PYTHONPATH=/build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages' Implicitly adding PYTHONPATH=/build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages -+ pwd +++ pwd + export PYTHONPATH=/build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages -+ [ -e .stestr.conf ] -+ [ -x /usr/bin/python3-stestr ] ++ PYTHONPATH=/build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages ++ '[' -e .stestr.conf ']' ++ '[' -x /usr/bin/python3-stestr ']' + STESTR=stestr + rm -rf .stestr -+ PYTHON=python3.13 stestr run --parallel --subunit --concurrency 2 magnum\.tests\.unit\.(?!(drivers\.test_heat_driver\.TestHeatPoller\.test_poll_done|drivers\.test_heat_driver\.TestHeatPoller\.test_poll_destroy|api\.controllers\.v1\.test_baymodel\.TestPatch|api\.controllers\.v1\.test_baymodel\.TestPost|api\.controllers\.v1\.test_cluster_template\.TestPost|api\.controllers\.v1\.test_cluster_template\.TestListClusterTemplate|api\.controllers\.v1\.test_cluster_template\.TestPatch\.test_update_cluster_template_with_cluster_not_allow_update|api\.controllers\.v1\.test_federation\.TestListFederation\.test_collection_links|api\.controllers\.v1\.test_federation\.TestPost\.test_create_federation_with_valid_name)) + subunit2pyunit ++ PYTHON=python3.13 ++ stestr run --parallel --subunit --concurrency 2 'magnum\.tests\.unit\.(?!(drivers\.test_heat_driver\.TestHeatPoller\.test_poll_done|drivers\.test_heat_driver\.TestHeatPoller\.test_poll_destroy|api\.controllers\.v1\.test_baymodel\.TestPatch|api\.controllers\.v1\.test_baymodel\.TestPost|api\.controllers\.v1\.test_cluster_template\.TestPost|api\.controllers\.v1\.test_cluster_template\.TestListClusterTemplate|api\.controllers\.v1\.test_cluster_template\.TestPatch\.test_update_cluster_template_with_cluster_not_allow_update|api\.controllers\.v1\.test_federation\.TestListFederation\.test_collection_links|api\.controllers\.v1\.test_federation\.TestPost\.test_create_federation_with_valid_name))' 3 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. 3 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. 3 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. +magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_invalid_major_version +magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_invalid_major_version ... ok +magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_ok +magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_ok ... ok +magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_too_high +magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_too_high ... ok magnum.tests.unit.api.controllers.test_base.TestController.test_api_version_decorator magnum.tests.unit.api.controllers.test_base.TestController.test_api_version_decorator ... ok +magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_too_low +magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_too_low ... ok magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_negative magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_negative ... ok magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_positive @@ -5392,8 +5446,10 @@ magnum.tests.unit.api.controllers.test_base.TestVersion.test__le__with_higher_version ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__le__with_lower_version magnum.tests.unit.api.controllers.test_base.TestVersion.test__le__with_lower_version ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. magnum.tests.unit.api.controllers.test_base.TestVersion.test__lt__with_higher_major_version magnum.tests.unit.api.controllers.test_base.TestVersion.test__lt__with_higher_major_version ... ok +INFO [alembic.runtime.migration] Will assume non-transactional DDL. magnum.tests.unit.api.controllers.test_base.TestVersion.test__lt__with_higher_minor_version magnum.tests.unit.api.controllers.test_base.TestVersion.test__lt__with_higher_minor_version ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__lt__with_lower_major_version @@ -5418,8 +5474,11 @@ magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_start_version ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_valid_version magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_valid_version ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> c0f832afc4fd magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_version_too_high magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_version_too_high ... ok +magnum.tests.unit.api.controllers.test_root.TestV1Routing.test_route_checks_version +magnum.tests.unit.api.controllers.test_root.TestV1Routing.test_route_checks_version ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_version_too_low magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_version_too_low ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length @@ -5434,199 +5493,127 @@ magnum.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_repr magnum.tests.unit.api.controllers.test_base.TestVersion.test_repr ... ok -magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_invalid_major_version -magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_invalid_major_version ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings magnum.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings ... ok -magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_ok -magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_ok ... ok -magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_too_high -magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_too_high ... ok -magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_too_low -magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_too_low ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_multiple_cluster +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_multiple_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_not_found +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_not_found ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> c0f832afc4fd -INFO [alembic.runtime.migration] Running stamp_revision -> c0f832afc4fd magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_disable_file magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_disable_file ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificate.test_rotate_ca_cert -magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificate.test_rotate_ca_cert ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterObject.test_cluster_init -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterObject.test_cluster_init ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_links +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_links ... ok magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_enabled magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_enabled ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist_not_abs magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist_not_abs ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_no_public_routes magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_no_public_routes ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_create -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_create ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_by_cluster_name +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_by_cluster_name ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_root_access magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_root_access ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_delete -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_delete ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_cluster_not_found +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_cluster_not_found ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_v1_access magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_v1_access ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_get_not_found magnum.tests.unit.api.controllers.test_root.TestRootController.test_get_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_detail -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_detail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_all -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_all ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_one -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_update -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_update ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificate.test_rotate_ca_cert +magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificate.test_rotate_ca_cert ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_noauth magnum.tests.unit.api.controllers.test_root.TestRootController.test_noauth ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_v1_controller magnum.tests.unit.api.controllers.test_root.TestRootController.test_v1_controller ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_delete -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_delete ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_version magnum.tests.unit.api.controllers.test_root.TestRootController.test_version ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_get_one -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_get_one ... ok -magnum.tests.unit.api.controllers.test_root.TestV1Routing.test_route_checks_version -magnum.tests.unit.api.controllers.test_root.TestV1Routing.test_route_checks_version ... ok magnum.tests.unit.api.controllers.v1.test_certificate.TestCertObject.test_cert_init magnum.tests.unit.api.controllers.v1.test_certificate.TestCertObject.test_cert_init ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_update -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_update ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_create -magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_create ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_get_one -magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_get_one ... ok -Exception ignored in: . at 0xffff90f4a660> -Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 729, in - _finalize_fairy( - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 1035, in _finalize_fairy - connection_record.checkin() - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 770, in checkin - pool.dispatch.checkin(connection, self) - File "/usr/lib/python3/dist-packages/sqlalchemy/event/attr.py", line 497, in __call__ - fn(*args, **kw) - File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 52, in _thread_yield - time.sleep(0) - File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 35, in sleep - raise RuntimeError('do not call blocking functions from the mainloop') -RuntimeError: do not call blocking functions from the mainloop -magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_rotate -magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_rotate ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_as_admin magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_not_found magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_create +magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_create ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name_not_found -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_multiple_cluster -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_multiple_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_multiple_cluster_by_name -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_multiple_cluster_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_not_found -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_links -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_links ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_by_cluster_name -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_by_cluster_name ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_cluster_not_found -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_cluster_not_found ... ok -PATCH: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:Response: 202 Accepted +magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_get_one +magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_rotate +magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_rotate ... ok +GET: /v1/ {} +GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.magnum.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'http://docs.openstack.org/developer/magnum/dev/api-spec-v1.html', 'rel': 'describedby', 'type': 'text/html'}], 'clustertemplates': [{'href': 'http://localhost/v1/clustertemplates/', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/', 'rel': 'bookmark'}], 'clusters': [{'href': 'http://localhost/v1/clusters/', 'rel': 'self'}, {'href': 'http://localhost/clusters/', 'rel': 'bookmark'}], 'quotas': [{'href': 'http://localhost/v1/quotas/', 'rel': 'self'}, {'href': 'http://localhost/quotas/', 'rel': 'bookmark'}], 'certificates': [{'href': 'http://localhost/v1/certificates/', 'rel': 'self'}, {'href': 'http://localhost/certificates/', 'rel': 'bookmark'}], 'mservices': [{'href': 'http://localhost/v1/mservices/', 'rel': 'self'}, {'href': 'http://localhost/mservices/', 'rel': 'bookmark'}], 'stats': [{'href': 'http://localhost/v1/stats/', 'rel': 'self'}, {'href': 'http://localhost/stats/', 'rel': 'bookmark'}], 'federations': [{'href': 'http://localhost/v1/federations/', 'rel': 'self'}, {'href': 'http://localhost/federations/', 'rel': 'bookmark'}], 'nodegroups': [{'href': 'http://localhost/v1/clusters/{cluster_id}/nodegroups', 'rel': 'self'}, {'href': 'http://localhost/clusters/{cluster_id}/nodegroups', 'rel': 'bookmark'}]} +GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} +GET: /v1/certificates/cluster1 {} +GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} +GET: /v1/certificates/test_cluster {} +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:create to be performed", "detail": "Policy doesn't allow cluster:create to be performed.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:delete to be performed", "detail": "Policy doesn't allow cluster:delete to be performed.", "links": []}]} -GET: /v1/clusters/b7ce9f30-3f6f-45f3-9e29-e0b11d7e37af/detail {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:detail to be performed", "detail": "Policy doesn't allow cluster:detail to be performed.", "links": []}]} -GET: /v1/clusters {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:get_all to be performed", "detail": "Policy doesn't allow cluster:get_all to be performed.", "links": []}]} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:Response: 403 Forbidden +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} +GET: /v1/certificates/not_found {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:get to be performed", "detail": "Policy doesn't allow cluster:get to be performed.", "links": []}]} -PATCH: /v1/clusters/cluster_example_A [{'path': '/name', 'value': 'new_name', 'op': 'replace'}] -GOT:Response: 403 Forbidden +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} +GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} +GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} +GET: /certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} +POST: /v1/certificates {'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'csr': 'fake-csr'} +GOT:Response: 201 Created Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:update to be performed", "detail": "Policy doesn't allow cluster:update to be performed.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 -GOT:Response: 403 Forbidden +{"cluster_uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "links": [{"href": "http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "rel": "self"}, {"href": "http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "rel": "bookmark"}], "csr": "fake-csr", "pem": "fake-pem"} +POST: /v1/certificates {'cluster_uuid': 'cluster1', 'csr': 'fake-csr'} +GOT:Response: 201 Created Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:delete to be performed", "detail": "Policy doesn't allow cluster:delete to be performed.", "links": []}]} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:Response: 403 Forbidden +{"cluster_uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "links": [{"href": "http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "rel": "self"}, {"href": "http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "rel": "bookmark"}], "csr": "fake-csr", "pem": "fake-pem"} +POST: /v1/certificates {'cluster_uuid': 'not_found', 'csr': 'fake-csr'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:get to be performed", "detail": "Policy doesn't allow cluster:get to be performed.", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/name', 'value': 'new_name', 'op': 'replace'}] -GOT:Response: 403 Forbidden +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} +PATCH: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:update to be performed", "detail": "Policy doesn't allow cluster:update to be performed.", "links": []}]} +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 @@ -5642,21 +5629,21 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 could not be found", "detail": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 could not be found.", "links": []}]} -DELETE: /v1/clusters/51f696c7-62a1-4562-a8d2-3be1b233ca7b +DELETE: /v1/clusters/f4c5d22d-307e-4ab2-bded-af63108cb182 GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -DELETE: /v1/clusters/39436d8c-7dd0-4ae7-a67a-cbf6c5f9b9c3 +DELETE: /v1/clusters/f50b5ab4-de3a-4508-a2b7-bcd443ffad9a GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 39436d8c-7dd0-4ae7-a67a-cbf6c5f9b9c3 could not be found", "detail": "Cluster 39436d8c-7dd0-4ae7-a67a-cbf6c5f9b9c3 could not be found.", "links": []}]} +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster f50b5ab4-de3a-4508-a2b7-bcd443ffad9a could not be found", "detail": "Cluster f50b5ab4-de3a-4508-a2b7-bcd443ffad9a could not be found.", "links": []}]} DELETE: /v1/clusters/cluster1 GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 @@ -5671,21 +5658,19 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} -DELETE: /v1/clusters/test_cluster -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} -GET: /v1/clusters/?limit=3 {} -GOT:{'clusters': [{'uuid': '586b3ddf-cb58-480f-bb04-e824c368314b', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/586b3ddf-cb58-480f-bb04-e824c368314b', 'rel': 'self'}, {'href': 'http://localhost/clusters/586b3ddf-cb58-480f-bb04-e824c368314b', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '271b4c04-3851-4bab-bcda-3450fdfc8b31', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/271b4c04-3851-4bab-bcda-3450fdfc8b31', 'rel': 'self'}, {'href': 'http://localhost/clusters/271b4c04-3851-4bab-bcda-3450fdfc8b31', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '37ac2535-cf53-481a-902e-dd355b695fc8', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/37ac2535-cf53-481a-902e-dd355b695fc8', 'rel': 'self'}, {'href': 'http://localhost/clusters/37ac2535-cf53-481a-902e-dd355b695fc8', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}], 'next': 'http://localhost/v1/clusters?sort_key=id&sort_dir=asc&limit=3&marker=37ac2535-cf53-481a-902e-dd355b695fc8'}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name_not_found +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_multiple_cluster_by_name +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_multiple_cluster_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificateNonTls.test_rotate_ca_cert_non_tls +magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificateNonTls.test_rotate_ca_cert_non_tls ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterObject.test_cluster_init +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterObject.test_cluster_init ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_create +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_create ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links_default_limit -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links_default_limit ... ok -Exception ignored in: . at 0xffff83089440> +Exception ignored in: . at 0xffffa54062a0> Traceback (most recent call last): File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 729, in _finalize_fairy( @@ -5700,14 +5685,34 @@ File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 35, in sleep raise RuntimeError('do not call blocking functions from the mainloop') RuntimeError: do not call blocking functions from the mainloop -magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificateNonTls.test_rotate_ca_cert_non_tls -magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificateNonTls.test_rotate_ca_cert_non_tls ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_delete +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_delete ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_detail +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_detail ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_all +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_all ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_one +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links_default_limit +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links_default_limit ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_update +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_update ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_against_single magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_against_single ... ok -GET: /v1/ {} -GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.magnum.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'http://docs.openstack.org/developer/magnum/dev/api-spec-v1.html', 'rel': 'describedby', 'type': 'text/html'}], 'clustertemplates': [{'href': 'http://localhost/v1/clustertemplates/', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/', 'rel': 'bookmark'}], 'clusters': [{'href': 'http://localhost/v1/clusters/', 'rel': 'self'}, {'href': 'http://localhost/clusters/', 'rel': 'bookmark'}], 'quotas': [{'href': 'http://localhost/v1/quotas/', 'rel': 'self'}, {'href': 'http://localhost/quotas/', 'rel': 'bookmark'}], 'certificates': [{'href': 'http://localhost/v1/certificates/', 'rel': 'self'}, {'href': 'http://localhost/certificates/', 'rel': 'bookmark'}], 'mservices': [{'href': 'http://localhost/v1/mservices/', 'rel': 'self'}, {'href': 'http://localhost/mservices/', 'rel': 'bookmark'}], 'stats': [{'href': 'http://localhost/v1/stats/', 'rel': 'self'}, {'href': 'http://localhost/stats/', 'rel': 'bookmark'}], 'federations': [{'href': 'http://localhost/v1/federations/', 'rel': 'self'}, {'href': 'http://localhost/federations/', 'rel': 'bookmark'}], 'nodegroups': [{'href': 'http://localhost/v1/clusters/{cluster_id}/nodegroups', 'rel': 'self'}, {'href': 'http://localhost/clusters/{cluster_id}/nodegroups', 'rel': 'bookmark'}]} +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_delete +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_delete ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_get_one +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_with_pagination_marker ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_update +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_update ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_empty +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_empty ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster ... ok POST: /v1/certificates {'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'csr': 'fake-csr', 'pem': 'fake-pem'} GOT:Response: 403 Forbidden Content-Type: application/json @@ -5732,56 +5737,6 @@ Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow certificate:rotate_ca to be performed", "detail": "Policy doesn't allow certificate:rotate_ca to be performed.", "links": []}]} -GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} -GET: /v1/certificates/cluster1 {} -GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} -GET: /v1/certificates/test_cluster {} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} -GET: /v1/certificates/not_found {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} -GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} -GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} -GET: /certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} -POST: /v1/certificates {'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'csr': 'fake-csr'} -GOT:Response: 201 Created -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"cluster_uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "links": [{"href": "http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "rel": "self"}, {"href": "http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "rel": "bookmark"}], "csr": "fake-csr", "pem": "fake-pem"} -POST: /v1/certificates {'cluster_uuid': 'cluster1', 'csr': 'fake-csr'} -GOT:Response: 201 Created -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"cluster_uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "links": [{"href": "http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "rel": "self"}, {"href": "http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "rel": "bookmark"}], "csr": "fake-csr", "pem": "fake-pem"} -POST: /v1/certificates {'cluster_uuid': 'not_found', 'csr': 'fake-csr'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} PATCH: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} GOT:Response: 400 Bad Request Content-Type: application/json @@ -5790,646 +5745,89 @@ Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Rotating the CA certificate on a non-TLS cluster is not supported", "detail": "Rotating the CA certificate on a non-TLS cluster is not supported", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.7 -Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"}magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_master_nodegroup -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_master_nodegroup ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_with_pagination_marker ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_greater_than_max -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_greater_than_max ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_empty -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_empty ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_less_than_min -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_less_than_min ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_all_projects -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_all_projects ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_nodegroup -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_nodegroup ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count_fail -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count_fail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplateObject.test_cluster_template_init -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplateObject.test_cluster_template_init ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation ... ok - -GET: /v1/clusters {} -GOT:{'clusters': [{'uuid': '7e8a488f-61e6-43fa-a3f0-022906d488a5', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/7e8a488f-61e6-43fa-a3f0-022906d488a5', 'rel': 'self'}, {'href': 'http://localhost/clusters/7e8a488f-61e6-43fa-a3f0-022906d488a5', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '50edb70b-2959-476c-9842-379e7a18c378', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/50edb70b-2959-476c-9842-379e7a18c378', 'rel': 'self'}, {'href': 'http://localhost/clusters/50edb70b-2959-476c-9842-379e7a18c378', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '9215ccfc-b9b4-4982-bf20-f92842aec9f7', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/9215ccfc-b9b4-4982-bf20-f92842aec9f7', 'rel': 'self'}, {'href': 'http://localhost/clusters/9215ccfc-b9b4-4982-bf20-f92842aec9f7', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}], 'next': 'http://localhost/v1/clusters?sort_key=id&sort_dir=asc&limit=3&marker=9215ccfc-b9b4-4982-bf20-f92842aec9f7'} -GET: /v1/clusters/detail {} -GOT:{'clusters': [{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:16.524784+00:00', 'updated_at': None}]} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/detail {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "The %(name)s resource %(id)s could not be found", "detail": "The %(name)s resource %(id)s could not be found.", "links": []}]} -GET: /v1/clusters/detail?limit=3&marker=fde31131-c91f-45d0-8555-46dbcdf9f8f4 {} -GOT:{'clusters': [{'uuid': 'e62e6638-c1c6-4fc0-8bd0-f530eec2a22b', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/e62e6638-c1c6-4fc0-8bd0-f530eec2a22b', 'rel': 'self'}, {'href': 'http://localhost/clusters/e62e6638-c1c6-4fc0-8bd0-f530eec2a22b', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:16.611436+00:00', 'updated_at': None}]} -GET: /v1/clusters {} -GOT:{'clusters': []} -GET: /v1/clusters {} -GOT:{'clusters': [{'uuid': 'a20ce65e-b911-4b08-a0ef-693e2330d48f', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/a20ce65e-b911-4b08-a0ef-693e2330d48f', 'rel': 'self'}, {'href': 'http://localhost/clusters/a20ce65e-b911-4b08-a0ef-693e2330d48f', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '775fd39b-1ec0-4d27-9f71-e74671af3361', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/775fd39b-1ec0-4d27-9f71-e74671af3361', 'rel': 'self'}, {'href': 'http://localhost/clusters/775fd39b-1ec0-4d27-9f71-e74671af3361', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '14c12112-e7fd-47bd-a0bb-31d6dffaf0e5', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/14c12112-e7fd-47bd-a0bb-31d6dffaf0e5', 'rel': 'self'}, {'href': 'http://localhost/clusters/14c12112-e7fd-47bd-a0bb-31d6dffaf0e5', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '5ad4d246-ce2b-452c-b813-4be52be8d2b6', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5ad4d246-ce2b-452c-b813-4be52be8d2b6', 'rel': 'self'}, {'href': 'http://localhost/clusters/5ad4d246-ce2b-452c-b813-4be52be8d2b6', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]} -GET: /v1/clusters?limit=3&marker=dd9e5eb5-040d-4520-88a9-21d937266917 {} -GOT:{'clusters': [{'uuid': '4946e02d-9652-42c2-bb52-bb17f1cd6688', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/4946e02d-9652-42c2-bb52-bb17f1cd6688', 'rel': 'self'}, {'href': 'http://localhost/clusters/4946e02d-9652-42c2-bb52-bb17f1cd6688', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_pagination_marker ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_not_found -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name_not_found -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_multiple_cluster -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_multiple_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_not_found -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid ... ok - -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:16.545034+00:00', 'updated_at': None} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': '41a4e573-3604-442a-b695-1b3a5b54ae52'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.9 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a master nodegroup is not supported", "detail": "Resizing a master nodegroup is not supported.", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': '4a4188ea-b593-4dfc-8ce2-b10c2c80f90d'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.9 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing test-worker outside the allowed range: min_node_count = 1, max_node_count = 5", "detail": "Resizing test-worker outside the allowed range: min_node_count = 1, max_node_count = 5", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 3, 'nodegroup': '7199c7eb-ecfe-44ff-8b66-9c635841d85f'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.9 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing test-worker outside the allowed range: min_node_count = 4, max_node_count = None", "detail": "Resizing test-worker outside the allowed range: min_node_count = 4, max_node_count = None", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': 'a3efd852-6956-490b-9fe3-7b9340dc1344'} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.9 -Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:16.698482+00:00', 'updated_at': None} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 0, 'nodegroup': 'd0144302-e3e8-4a88-b9d9-0866e60677f8'} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.10 -Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 0, 'nodegroup': '5f2afcf0-523b-49df-aafd-17d7b6502719'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.9 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a nodegroup to zero is not supported in the provided microversion", "detail": "Resizing a nodegroup to zero is not supported in the provided microversion.", "links": []}]} -DELETE: /v1/federations/a385ea7f-b771-4cba-a33f-ea3094aabffd -GOT:Response: 204 No Content -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version - -GET: /v1/federations/a385ea7f-b771-4cba-a33f-ea3094aabffd {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation a385ea7f-b771-4cba-a33f-ea3094aabffd could not be found", "detail": "Federation a385ea7f-b771-4cba-a33f-ea3094aabffd could not be found.", "links": []}]} -DELETE: /v1/federations/81034fd6-6d3c-40a6-af84-0d55b6e520d6 -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation 81034fd6-6d3c-40a6-af84-0d55b6e520d6 could not be found", "detail": "Federation 81034fd6-6d3c-40a6-af84-0d55b6e520d6 could not be found.", "links": []}]} -DELETE: /v1/federations/federation-example -GOT:Response: 204 No Content -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version - -DELETE: /v1/federations/foo -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation foo could not be found", "detail": "Federation foo could not be found.", "links": []}]} -GET: /v1/federations/detail {} -GOT:{'federations': [{'uuid': '4655ea98-daec-44f3-b4a8-ac1ac2f04e0e', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/4655ea98-daec-44f3-b4a8-ac1ac2f04e0e', 'rel': 'self'}, {'href': 'http://localhost/federations/4655ea98-daec-44f3-b4a8-ac1ac2f04e0e', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:16.916787+00:00', 'updated_at': None}]}magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_against_single -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_against_single ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_with_pagination_marker ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_empty -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_empty ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_all_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_all_with_pagination_marker ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_admin -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_admin ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_not_found -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_multiple_federation -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_multiple_federation ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_failed_cluster -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_failed_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_not_found -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid_not_found -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_links -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_links ... ok - -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:16.812933+00:00', 'updated_at': None} -GET: /v1/clusters/cluster1 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:16.859125+00:00', 'updated_at': None} -GET: /v1/clusters/test_cluster {} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} -GET: /v1/clusters/not_found {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} -GET: /v1/clusters/e6a9ca1b-ab3c-443a-bedc-0a882288ab9f {} -GOT:{'uuid': 'e6a9ca1b-ab3c-443a-bedc-0a882288ab9f', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/e6a9ca1b-ab3c-443a-bedc-0a882288ab9f', 'rel': 'self'}, {'href': 'http://localhost/clusters/e6a9ca1b-ab3c-443a-bedc-0a882288ab9f', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:16.953869+00:00', 'updated_at': None} -GET: /v1/clusters/52680d8f-29ce-4105-9485-bc38887acc40 {} -GOT:{'uuid': '52680d8f-29ce-4105-9485-bc38887acc40', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/52680d8f-29ce-4105-9485-bc38887acc40', 'rel': 'self'}, {'href': 'http://localhost/clusters/52680d8f-29ce-4105-9485-bc38887acc40', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': '52680d8f-29ce-4105-9485-bc38887acc40', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:17.000591+00:00', 'updated_at': None} -GET: /v1/clusters/e6f6d8d5-a9b9-4261-922e-70abcb24fbea {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster e6f6d8d5-a9b9-4261-922e-70abcb24fbea could not be found", "detail": "Cluster e6f6d8d5-a9b9-4261-922e-70abcb24fbea could not be found.", "links": []}]} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_FAILED', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'faults': {'test-master': 'fake_reason'}, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:17.064708+00:00', 'updated_at': None} -GET: /v1/clusters/e4edd3ef-1ad2-4992-9589-a257ff2d7a65 {} -GOT:{'uuid': 'e4edd3ef-1ad2-4992-9589-a257ff2d7a65', 'name': 'cluster1', 'cluster_template_id': 'bd754a45-94e3-4a65-9759-24dff0b0c2fe', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/e4edd3ef-1ad2-4992-9589-a257ff2d7a65', 'rel': 'self'}, {'href': 'http://localhost/clusters/e4edd3ef-1ad2-4992-9589-a257ff2d7a65', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {'label2': 'value2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:17.111163+00:00', 'updated_at': None}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_merged_labels -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_merged_labels ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_links -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_links ... ok - -GET: /v1/federations/75824ffd-2db9-4b67-9ec1-b3d8285e8264/detail {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "The %(name)s resource %(id)s could not be found", "detail": "The %(name)s resource %(id)s could not be found.", "links": []}]} -GET: /v1/federations/detail?limit=3&marker=4e457472-2b99-4d6c-a4b1-72ccabc91571 {} -GOT:{'federations': [{'uuid': 'ebb259ac-eed7-4cbb-904f-ad997989b821', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/ebb259ac-eed7-4cbb-904f-ad997989b821', 'rel': 'self'}, {'href': 'http://localhost/federations/ebb259ac-eed7-4cbb-904f-ad997989b821', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:16.960598+00:00', 'updated_at': None}]} -GET: /v1/federations {} -GOT:{'federations': []} -GET: /v1/federations?limit=3&marker=0789a05e-42ca-4ba0-bcae-4a288ef28abe {} -GOT:{'federations': [{'uuid': 'bd8db019-e350-4619-bb69-596e8fe9ee51', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/bd8db019-e350-4619-bb69-596e8fe9ee51', 'rel': 'self'}, {'href': 'http://localhost/federations/bd8db019-e350-4619-bb69-596e8fe9ee51', 'rel': 'bookmark'}]}]} -GET: /v1/federations/3933f03d-a70a-444f-8f7a-d90391d68110 {} -GOT:{'uuid': '3933f03d-a70a-444f-8f7a-d90391d68110', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/3933f03d-a70a-444f-8f7a-d90391d68110', 'rel': 'self'}, {'href': 'http://localhost/federations/3933f03d-a70a-444f-8f7a-d90391d68110', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:17.032096+00:00', 'updated_at': None} -GET: /v1/federations/fake-name {} -GOT:{'uuid': '39537114-92e9-4013-86df-4203ae7005f5', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/39537114-92e9-4013-86df-4203ae7005f5', 'rel': 'self'}, {'href': 'http://localhost/federations/39537114-92e9-4013-86df-4203ae7005f5', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:17.051917+00:00', 'updated_at': None} -GET: /v1/federations/test_federation {} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple federations exist with same name", "detail": "Multiple federations exist with same name. Please use the federation uuid instead.", "links": []}]} -GET: /v1/federations/not_found {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation not_found could not be found", "detail": "Federation not_found could not be found.", "links": []}]} -GET: /v1/federations/3191c517-7cda-4af8-8e51-5f8e9fcc1cfb {} -GOT:{'uuid': '3191c517-7cda-4af8-8e51-5f8e9fcc1cfb', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/3191c517-7cda-4af8-8e51-5f8e9fcc1cfb', 'rel': 'self'}, {'href': 'http://localhost/federations/3191c517-7cda-4af8-8e51-5f8e9fcc1cfb', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:17.107243+00:00', 'updated_at': None} -GET: /v1/federations/7881a5ea-e688-4e62-bfa5-53ec82a1cea3 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation 7881a5ea-e688-4e62-bfa5-53ec82a1cea3 could not be found", "detail": "Federation 7881a5ea-e688-4e62-bfa5-53ec82a1cea3 could not be found.", "links": []}]} -GET: /v1/federations/03e85539-7b4b-4f0a-8507-5915c2b755f6 {} -GOT:{'uuid': '03e85539-7b4b-4f0a-8507-5915c2b755f6', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/03e85539-7b4b-4f0a-8507-5915c2b755f6', 'rel': 'self'}, {'href': 'http://localhost/federations/03e85539-7b4b-4f0a-8507-5915c2b755f6', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:17.143030+00:00', 'updated_at': None} -GET: /v1/federations/03e85539-7b4b-4f0a-8507-5915c2b755f6 {} -GOT:{'uuid': '03e85539-7b4b-4f0a-8507-5915c2b755f6', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/03e85539-7b4b-4f0a-8507-5915c2b755f6', 'rel': 'self'}, {'href': 'http://localhost/federations/03e85539-7b4b-4f0a-8507-5915c2b755f6', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:17.143030+00:00', 'updated_at': None} -GET: /federations/03e85539-7b4b-4f0a-8507-5915c2b755f6 {} -GOT:{'uuid': '03e85539-7b4b-4f0a-8507-5915c2b755f6', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/03e85539-7b4b-4f0a-8507-5915c2b755f6', 'rel': 'self'}, {'href': 'http://localhost/federations/03e85539-7b4b-4f0a-8507-5915c2b755f6', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:17.143030+00:00', 'updated_at': None} -GET: /v1/federations {} -GOT:{'federations': [{'uuid': '4b4dff61-2af3-4c5a-89d5-c19b2d6d4d78', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/4b4dff61-2af3-4c5a-89d5-c19b2d6d4d78', 'rel': 'self'}, {'href': 'http://localhost/federations/4b4dff61-2af3-4c5a-89d5-c19b2d6d4d78', 'rel': 'bookmark'}]}, {'uuid': 'd9e94c47-2a67-4987-969a-2b84b6720c16', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/d9e94c47-2a67-4987-969a-2b84b6720c16', 'rel': 'self'}, {'href': 'http://localhost/federations/d9e94c47-2a67-4987-969a-2b84b6720c16', 'rel': 'bookmark'}]}, {'uuid': '0a6218ee-ccf0-4ea5-9c34-81fd68419514', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/0a6218ee-ccf0-4ea5-9c34-81fd68419514', 'rel': 'self'}, {'href': 'http://localhost/federations/0a6218ee-ccf0-4ea5-9c34-81fd68419514', 'rel': 'bookmark'}]}, {'uuid': 'aee5fc9f-9a41-42b2-ba1f-49ef51403dea', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/aee5fc9f-9a41-42b2-ba1f-49ef51403dea', 'rel': 'self'}, {'href': 'http://localhost/federations/aee5fc9f-9a41-42b2-ba1f-49ef51403dea', 'rel': 'bookmark'}]}, {'uuid': 'c04da58f-300e-42a8-ba10-82ee9467075e', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/c04da58f-300e-42a8-ba10-82ee9467075e', 'rel': 'self'}, {'href': 'http://localhost/federations/c04da58f-300e-42a8-ba10-82ee9467075e', 'rel': 'bookmark'}]}]}magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_many -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_many ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_one -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_one ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_generate_uuid -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_generate_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_hostcluster_does_not_exist -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_hostcluster_does_not_exist ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_many -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_many ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_dns_zone_name -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_dns_zone_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_one -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_one ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_hostcluster_id -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_hostcluster_id ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_add_non_existent_property -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_add_non_existent_property ... ok - -GET: /v1/federations {} -GOT:{'federations': [{'uuid': '7854b7cf-b09b-4a2a-b116-53989dc4530c', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/7854b7cf-b09b-4a2a-b116-53989dc4530c', 'rel': 'self'}, {'href': 'http://localhost/federations/7854b7cf-b09b-4a2a-b116-53989dc4530c', 'rel': 'bookmark'}]}]} -POST: /v1/federations {'uuid': '7cebacb3-d7c8-4d68-9f88-7a8c1dbf3ac1', 'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "a8cca580-ecbc-4c07-aaf5-ade52b512206"} -POST: /v1/federations {'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "e5492b57-86a1-4ee4-b3eb-df4c59149808"} -POST: /v1/federations {'uuid': '449387ae-3885-460d-9f53-1757762eb034', 'name': 'fake-name', 'hostcluster_id': 'e405d18f-05c5-4779-98e8-749bc51e0f77', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster e405d18f-05c5-4779-98e8-749bc51e0f77 could not be found", "detail": "Cluster e405d18f-05c5-4779-98e8-749bc51e0f77 could not be found.", "links": []}]} -POST: /v1/federations {'uuid': '9712b953-426f-4717-aa28-2b040ceff38f', 'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Please specify a `properties` dict for the federation", "detail": "Please specify a `properties` dict for the federation.", "links": []}]} -POST: /v1/federations {'uuid': '1fa447c5-b78e-472d-b857-8bbeb0638fdd', 'name': 'fake-name', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "No hostcluster specified", "detail": "No hostcluster specified. Please specify a hostcluster_id.", "links": []}]} -POST: /v1/federations {'uuid': '742cff31-21c0-4039-9bab-1f15bca67549', 'name': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'. Value should have a maximum character requirement of 242", "links": []}]} -POST: /v1/federations {'uuid': '3b0b1828-b1bf-42cb-b28d-525f3047ad4d', 'name': '123456', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '123456'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} -POST: /v1/federations {'uuid': '7ccd4d5a-3151-4e9f-8e1e-2922791217d5', 'name': '123456test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '123456test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} -POST: /v1/federations {'uuid': 'f3788aa1-e694-4713-982d-e1d892c0050d', 'name': '-test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:create to be performed", "detail": "Policy doesn't allow cluster:create to be performed.", "links": []}]} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '-test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} -POST: /v1/federations {'uuid': '4794a7d2-13f8-45bb-a36e-5bbd1034cb67', 'name': '.test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:delete to be performed", "detail": "Policy doesn't allow cluster:delete to be performed.", "links": []}]} +GET: /v1/clusters/c39d197f-e278-46fd-a2b0-a8fcce508f61/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '.test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]}magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_with_invalid_name -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_with_invalid_name ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_without_name -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_without_name ... ok -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_empty -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_empty ... ok -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_many -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_many ... ok -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_one -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceEnforcement.test_policy_disallow_get_all -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceEnforcement.test_policy_disallow_get_all ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_by_name_not_found -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_by_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_default_nodegroup -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_default_nodegroup ... ok - -GET: /v1/clusters/870a1781-1c25-4316-b822-a07584b239ba {} -GOT:{'uuid': '870a1781-1c25-4316-b822-a07584b239ba', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/870a1781-1c25-4316-b822-a07584b239ba', 'rel': 'self'}, {'href': 'http://localhost/clusters/870a1781-1c25-4316-b822-a07584b239ba', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:17.151628+00:00', 'updated_at': None} -GET: /v1/clusters/870a1781-1c25-4316-b822-a07584b239ba {} -GOT:{'uuid': '870a1781-1c25-4316-b822-a07584b239ba', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/870a1781-1c25-4316-b822-a07584b239ba', 'rel': 'self'}, {'href': 'http://localhost/clusters/870a1781-1c25-4316-b822-a07584b239ba', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:17.151628+00:00', 'updated_at': None} -GET: /clusters/870a1781-1c25-4316-b822-a07584b239ba {} -GOT:{'uuid': '870a1781-1c25-4316-b822-a07584b239ba', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/870a1781-1c25-4316-b822-a07584b239ba', 'rel': 'self'}, {'href': 'http://localhost/clusters/870a1781-1c25-4316-b822-a07584b239ba', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:17.151628+00:00', 'updated_at': None} -GET: /v1/clusters {} -GOT:{'clusters': [{'uuid': '398f89a7-714c-45d6-b0b6-d2e91e7f22f2', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/398f89a7-714c-45d6-b0b6-d2e91e7f22f2', 'rel': 'self'}, {'href': 'http://localhost/clusters/398f89a7-714c-45d6-b0b6-d2e91e7f22f2', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '0bdd9d19-0df4-45b6-8ebf-406ac132700e', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/0bdd9d19-0df4-45b6-8ebf-406ac132700e', 'rel': 'self'}, {'href': 'http://localhost/clusters/0bdd9d19-0df4-45b6-8ebf-406ac132700e', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '1db862f9-152e-4178-8c18-21ca2ab02754', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/1db862f9-152e-4178-8c18-21ca2ab02754', 'rel': 'self'}, {'href': 'http://localhost/clusters/1db862f9-152e-4178-8c18-21ca2ab02754', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'c288093d-a838-4fdc-9002-2f231f7053f7', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/c288093d-a838-4fdc-9002-2f231f7053f7', 'rel': 'self'}, {'href': 'http://localhost/clusters/c288093d-a838-4fdc-9002-2f231f7053f7', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'a4a7517c-0cae-4735-9fb6-6c3d25bec687', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/a4a7517c-0cae-4735-9fb6-6c3d25bec687', 'rel': 'self'}, {'href': 'http://localhost/clusters/a4a7517c-0cae-4735-9fb6-6c3d25bec687', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]} +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:detail to be performed", "detail": "Policy doesn't allow cluster:detail to be performed.", "links": []}]} GET: /v1/clusters {} -GOT:{'clusters': [{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Adding a new attribute /foo to the root of the resource is not allowed", "detail": "Adding a new attribute /foo to the root of the resource is not allowed.", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/uuid', 'op': 'remove'}]magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_mandatory_property_fail -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_mandatory_property_fail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_non_existent_property -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_non_existent_property ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_ok ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_name_failed -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_name_failed ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_as_admin -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_template_id_failed -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_template_id_failed ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_by_name -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_not_found -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_health_status_ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_health_status_ok ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_wrong_microversion -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_wrong_microversion ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_invalid_node_count -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_invalid_node_count ... ok - -POST: /v1/federations {'uuid': '068affc3-d8d5-4e7a-93cc-73220af44680', 'name': '_test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '_test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} -POST: /v1/federations {'uuid': '7a44b005-7599-44fb-b70c-9168cdb09c48', 'name': '', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: ''. Value should have a minimum character requirement of 1", "links": []}]} -POST: /v1/federations {'uuid': '64e36950-1b00-4098-9e8c-6ef282200177', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "7c5dacec-33e6-4740-9a3c-a40274ed8f06"} -GET: /v1/mservices {} -GOT:{'mservices': []} -GET: /v1/mservices {} -GOT:{'mservices': [{'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 1, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 2, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 3, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 4, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 5, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}]} -GET: /v1/mservices {} -GOT:{'mservices': [{'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 1, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}]} -GET: /v1/mservices {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow magnum-service:get_all to be performed", "detail": "Policy doesn't allow magnum-service:get_all to be performed.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/not-there -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup not-there could not be found", "detail": "Nodegroup not-there could not be found.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/749eb3c8-e5d6-4437-81be-e083130218e1 -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Deleting a default nodegroup is not supported", "detail": "Deleting a default nodegroup is not supported.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 -GOT:Response: 204 No Content -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version - -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup 483203a3-dbee-4a9c-9d65-9820512f4df8 could not be found", "detail": "Nodegroup 483203a3-dbee-4a9c-9d65-9820512f4df8 could not be found.", "links": []}]} -DELETE: /v1/clusters/025f2786-8f3f-4528-931e-74955fd63e18/nodegroups/eddc83bb-3067-4ba5-a339-f4465f14c35c -GOT:Response: 204 No Content -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version - -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 -GOT:Response: 204 No Content -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version - -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup nodegroup1 could not be found", "detail": "Nodegroup nodegroup1 could not be found.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/42235aed-5112-4ad0-8a8d-968d6cce5d1d -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup 42235aed-5112-4ad0-8a8d-968d6cce5d1d could not be found", "detail": "Nodegroup 42235aed-5112-4ad0-8a8d-968d6cce5d1d could not be found.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 -GOT:Response: 406 Not Acceptable -Content-Type: application/json -{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} -GET: /v1/clusters/91610576-50e3-444f-a003-b8c42fb1f624/nodegroups {} -GOT:{'nodegroups': [{'uuid': '8b1aebde-a7d8-40d3-8459-fd6e26452891', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '1cb81a1e-54bb-4862-b078-1a7c0e479623', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_as_admin -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name ... ok - -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/uuid' is an internal attribute and can not be updated", "detail": "'/uuid' is an internal attribute and can not be updated", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:get_all to be performed", "detail": "Policy doesn't allow cluster:get_all to be performed.", "links": []}]} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/cluster_template_id' is a mandatory attribute and can not be removed", "detail": "'/cluster_template_id' is a mandatory attribute and can not be removed", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/non-existent', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:get to be performed", "detail": "Policy doesn't allow cluster:get to be performed.", "links": []}]} +PATCH: /v1/clusters/cluster_example_A [{'path': '/name', 'value': 'new_name', 'op': 'replace'}] +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'", "detail": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'. Reason: can't remove a non-existent object 'non-existent'", "links": []}]} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:17.468518+00:00', 'updated_at': None} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'op': 'remove'}] -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:update to be performed", "detail": "Policy doesn't allow cluster:update to be performed.", "links": []}]} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:delete to be performed", "detail": "Policy doesn't allow cluster:delete to be performed.", "links": []}]} GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 1, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:17.468518+00:00', 'updated_at': '2026-01-22T07:06:17.523568+00:00'} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/name', 'value': 'cluster_example_B', 'op': 'replace'}] -GOT:Response: 400 Bad Request +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "cannot change cluster property(ies) name", "detail": "cannot change cluster property(ies) name.", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'value': 'c4c8392f-a9ec-426a-a6ab-fc0367d35a31', 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:get to be performed", "detail": "Policy doesn't allow cluster:get to be performed.", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/name', 'value': 'new_name', 'op': 'replace'}] +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "cannot change cluster property(ies) cluster_template_id", "detail": "cannot change cluster property(ies) cluster_template_id.", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/health_status', 'value': 'HEALTHY', 'op': 'replace'}, {'path': '/health_status_reason', 'value': '{"api": "ok"}', 'op': 'replace'}] +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:update to be performed", "detail": "Policy doesn't allow cluster:update to be performed.", "links": []}]} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'HEALTHY', 'health_status_reason': {'api': 'ok'}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4', '172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:17.656385+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': -1, 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute node_count", "detail": "Invalid input for field/attribute node_count. Value: '-1'. Value should be greater or equal to 0", "links": []}]} -PATCH: /v1/clusters/a6fa8ec3-f2a2-446c-b258-4da8b9eef461 [{'path': '/name', 'value': 'cluster_example_B', 'op': 'replace'}]magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster_template_id -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster_template_id ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name_non_default_ngs -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name_non_default_ngs ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_non_existent_role -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_non_existent_role ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_role -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_role ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name ... ok -Exception ignored in: . at 0xffff830880e0> +{"uuid": "e2a7bf98-230b-4bc1-adf3-825c1ec72dcb"} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_doesnt_contain_id +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_doesnt_contain_id ... ok +Exception ignored in: . at 0xffffa5405300> Traceback (most recent call last): File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 729, in _finalize_fairy( @@ -6444,123 +5842,10 @@ File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 35, in sleep raise RuntimeError('do not call blocking functions from the mainloop') RuntimeError: do not call blocking functions from the mainloop -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_non_existent_cluster -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_non_existent_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_multiple_cluster -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_multiple_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_not_found -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_with_pagination_marker ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_uuid_not_found -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_uuid_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_wrong_microversion -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_wrong_microversion ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_as_admin -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_as_admin -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_disabled -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_disabled ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_enabled -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_enabled ... ok - -GET: /v1/clusters/89b841b5-adaf-43dd-a4cc-4373580ca104/nodegroups {} -GOT:{'nodegroups': [{'uuid': 'ae3b4479-1d06-4e8f-998f-05bcd34f9e12', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '5c0547b7-fc44-4500-8671-1a00663bd92c', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} -GET: /v1/clusters/cluster1/nodegroups {} -GOT:{'nodegroups': [{'uuid': '3279e231-6d78-45c5-9e21-2e712a8f44a0', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '8675a829-a662-4198-a6a3-d8196b12f39f', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} -GET: /v1/clusters/cluster1/nodegroups {} -GOT:{'nodegroups': [{'uuid': 'e80079fa-8166-41ed-b681-d49528dc87b2', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': 'a8fa9921-4367-470e-819b-b54cd84c96ee', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} -GET: /v1/clusters/cluster1/nodegroups?role=non-existent {} -GOT:{'nodegroups': []} -GET: /v1/clusters/cluster1/nodegroups?role=master {} -GOT:{'nodegroups': [{'uuid': '5d282f20-62cd-40c2-8ee7-008eb72c7230', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} -GET: /v1/clusters/cluster1/nodegroups?role=worker {} -GOT:{'nodegroups': [{'uuid': 'f06fab0c-85fc-4d8f-aa5c-0422b0742ae2', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} -GET: /v1/clusters/not-here/nodegroups {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not-here could not be found", "detail": "Cluster not-here could not be found.", "links": []}]} -GET: /v1/clusters/511db882-7b74-4693-b62f-c1ee222621bd/nodegroups?limit=1 {} -GOT:{'nodegroups': [{'uuid': '5dae0d49-a966-43eb-811f-4b2562cb7513', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}], 'next': 'http://localhost/v1/clusters/511db882-7b74-4693-b62f-c1ee222621bd/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=5dae0d49-a966-43eb-811f-4b2562cb7513'} -GET: /v1/clusters/511db882-7b74-4693-b62f-c1ee222621bd/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=5dae0d49-a966-43eb-811f-4b2562cb7513 {} -GOT:{'nodegroups': [{'uuid': '9376fc77-322e-4f77-acbb-6ce912ef8ea4', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}], 'next': 'http://localhost/v1/clusters/511db882-7b74-4693-b62f-c1ee222621bd/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=9376fc77-322e-4f77-acbb-6ce912ef8ea4'} -GET: /v1/clusters/511db882-7b74-4693-b62f-c1ee222621bd/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=9376fc77-322e-4f77-acbb-6ce912ef8ea4 {} -GOT:{'nodegroups': []} -GET: /v1/clusters/851a9ce0-40ad-4d49-9be9-27866cb051b8/nodegroups/ {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} -GET: /v1/clusters/832191d9-f565-417a-80fa-402d1cc4349a/nodegroups/f9a10bb2-9129-441f-872d-7a3376d6e99d {} -GOT:{'id': 1, 'uuid': 'f9a10bb2-9129-441f-872d-7a3376d6e99d', 'name': 'test-worker', 'cluster_id': '832191d9-f565-417a-80fa-402d1cc4349a', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/832191d9-f565-417a-80fa-402d1cc4349a/nodegroups/f9a10bb2-9129-441f-872d-7a3376d6e99d', 'rel': 'self'}, {'href': 'http://localhost/clusters/832191d9-f565-417a-80fa-402d1cc4349a/nodegroups/f9a10bb2-9129-441f-872d-7a3376d6e99d', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': 'test_image', 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:18.259994+00:00', 'updated_at': None} -GET: /v1/clusters/8c44bcc6-2d70-4be1-be0b-56c049bd24e1/nodegroups/320c9bfe-6426-407b-ad6b-13c8dcb2d043 {} -GOT:{'id': 3, 'uuid': '320c9bfe-6426-407b-ad6b-13c8dcb2d043', 'name': 'test-worker', 'cluster_id': '8c44bcc6-2d70-4be1-be0b-56c049bd24e1', 'project_id': '8c44bcc6-2d70-4be1-be0b-56c049bd24e1', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/8c44bcc6-2d70-4be1-be0b-56c049bd24e1/nodegroups/320c9bfe-6426-407b-ad6b-13c8dcb2d043', 'rel': 'self'}, {'href': 'http://localhost/clusters/8c44bcc6-2d70-4be1-be0b-56c049bd24e1/nodegroups/320c9bfe-6426-407b-ad6b-13c8dcb2d043', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': 'test_image', 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:18.303414+00:00', 'updated_at': None} -GET: /v1/clusters/7256effb-b398-4d38-bedc-84b8427f0c27/nodegroups/non_default_ng {} -GOT:{'id': 3, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'cluster_id': '7256effb-b398-4d38-bedc-84b8427f0c27', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label2': 'value2', 'label4': 'value4'}, 'links': [{'href': 'http://localhost/v1/clusters/7256effb-b398-4d38-bedc-84b8427f0c27/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/7256effb-b398-4d38-bedc-84b8427f0c27/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:18.347163+00:00', 'updated_at': None}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default_skipped_labels -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default_skipped_labels ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_existent_ng -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_existent_ng ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_wrong_microversion -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_wrong_microversion ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_all -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_all ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_one -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodegroupObject.test_nodegroup_init -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodegroupObject.test_nodegroup_init ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_frombasetype_no_value -magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_frombasetype_no_value ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value -magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values -magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_generate_uuid +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_generate_uuid ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster a6fa8ec3-f2a2-446c-b258-4da8b9eef461 could not be found", "detail": "Cluster a6fa8ec3-f2a2-446c-b258-4da8b9eef461 could not be found.", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'value': 'd79b698e-a87a-4dda-aca1-19e800296f12', 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "cannot change cluster property(ies) cluster_template_id", "detail": "cannot change cluster property(ies) cluster_template_id.", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': 4, 'op': 'replace'}] -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 4, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:18.012813+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} -PATCH: /v1/clusters/cluster_example_A [{'path': '/node_count', 'value': 4, 'op': 'replace'}] -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 4, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:18.082934+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} -PATCH: /v1/clusters/test_cluster [{'path': '/name', 'value': 'test_cluster', 'op': 'replace'}] +DELETE: /v1/clusters/test_cluster GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -6568,144 +5853,61 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} -PATCH: /v1/clusters/not_found [{'path': '/name', 'value': 'not_found', 'op': 'replace'}] -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} -PATCH: /v1/clusters/0692184a-b0f1-41f4-83e1-b2777b1a2aa6 [{'path': '/cluster_id', 'value': '0692184a-b0f1-41f4-83e1-b2777b1a2aa6', 'op': 'replace'}] +GET: /v1/clusters/?limit=3 {} +GOT:{'clusters': [{'uuid': 'b0f6984b-eba1-4d00-89ce-b4e918d7ddbe', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/b0f6984b-eba1-4d00-89ce-b4e918d7ddbe', 'rel': 'self'}, {'href': 'http://localhost/clusters/b0f6984b-eba1-4d00-89ce-b4e918d7ddbe', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '9d415f78-e84f-45cf-86d5-2ca16ac1923a', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/9d415f78-e84f-45cf-86d5-2ca16ac1923a', 'rel': 'self'}, {'href': 'http://localhost/clusters/9d415f78-e84f-45cf-86d5-2ca16ac1923a', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '1df528ce-7df5-440b-9de4-4453aa42dc20', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/1df528ce-7df5-440b-9de4-4453aa42dc20', 'rel': 'self'}, {'href': 'http://localhost/clusters/1df528ce-7df5-440b-9de4-4453aa42dc20', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}], 'next': 'http://localhost/v1/clusters?sort_key=id&sort_dir=asc&limit=3&marker=1df528ce-7df5-440b-9de4-4453aa42dc20'} +GET: /v1/clusters {} +GOT:{'clusters': [{'uuid': 'e7987006-1639-403c-a641-bdf7fb76e48d', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/e7987006-1639-403c-a641-bdf7fb76e48d', 'rel': 'self'}, {'href': 'http://localhost/clusters/e7987006-1639-403c-a641-bdf7fb76e48d', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '7313b4d0-f8cc-4f49-94b3-79244d51db0d', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/7313b4d0-f8cc-4f49-94b3-79244d51db0d', 'rel': 'self'}, {'href': 'http://localhost/clusters/7313b4d0-f8cc-4f49-94b3-79244d51db0d', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '99304e38-d7a9-4c78-8cbf-387cd1421737', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/99304e38-d7a9-4c78-8cbf-387cd1421737', 'rel': 'self'}, {'href': 'http://localhost/clusters/99304e38-d7a9-4c78-8cbf-387cd1421737', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}], 'next': 'http://localhost/v1/clusters?sort_key=id&sort_dir=asc&limit=3&marker=99304e38-d7a9-4c78-8cbf-387cd1421737'} +GET: /v1/clusters/detail {} +GOT:{'clusters': [{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:06.340359+00:00', 'updated_at': None}]} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 0692184a-b0f1-41f4-83e1-b2777b1a2aa6 could not be found", "detail": "Cluster 0692184a-b0f1-41f4-83e1-b2777b1a2aa6 could not be found.", "links": []}]} -PATCH: /v1/clusters/90961c25-432d-4c73-8867-2328b8c91b4d [{'path': '/node_count', 'value': 4, 'op': 'replace'}] -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "90961c25-432d-4c73-8867-2328b8c91b4d"} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/?rollback=False [{'path': '/node_count', 'value': 4, 'op': 'replace'}] -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.3 -Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/?rollback=True [{'path': '/node_count', 'value': 4, 'op': 'replace'}] -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.3 -Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': 0, 'op': 'replace'}] -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.10 -Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': 0, 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.9 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a nodegroup to zero is not supported in the provided microversion", "detail": "Resizing a nodegroup to zero is not supported in the provided microversion.", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count_fail -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count_fail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_doesnt_contain_id -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_doesnt_contain_id ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values -magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_invalid_single_dns -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_invalid_single_dns ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_multi_dns -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_multi_dns ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_generate_uuid -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_generate_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_single_dns -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_single_dns ... ok +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "The %(name)s resource %(id)s could not be found", "detail": "The %(name)s resource %(id)s could not be found.", "links": []}]} +GET: /v1/clusters/detail?limit=3&marker=05068040-e28e-4b43-9260-038f3754c44b {} +GOT:{'clusters': [{'uuid': 'b5df58c2-ae67-429b-832f-115087306d54', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/b5df58c2-ae67-429b-832f-115087306d54', 'rel': 'self'}, {'href': 'http://localhost/clusters/b5df58c2-ae67-429b-832f-115087306d54', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:06.506589+00:00', 'updated_at': None}]} +GET: /v1/clusters {} +GOT:{'clusters': []} +GET: /v1/clusters {} +GOT:{'clusters': [{'uuid': '72dfceec-a800-4ab6-a410-dd9571a55475', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/72dfceec-a800-4ab6-a410-dd9571a55475', 'rel': 'self'}, {'href': 'http://localhost/clusters/72dfceec-a800-4ab6-a410-dd9571a55475', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '5b38d8db-6289-462f-8f44-56cac9b7415f', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5b38d8db-6289-462f-8f44-56cac9b7415f', 'rel': 'self'}, {'href': 'http://localhost/clusters/5b38d8db-6289-462f-8f44-56cac9b7415f', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'fb3ecd66-46cc-4e31-aac8-21777c6a014e', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/fb3ecd66-46cc-4e31-aac8-21777c6a014e', 'rel': 'self'}, {'href': 'http://localhost/clusters/fb3ecd66-46cc-4e31-aac8-21777c6a014e', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '40eacf0d-eef3-46b8-8122-9ee614a0651e', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/40eacf0d-eef3-46b8-8122-9ee614a0651e', 'rel': 'self'}, {'href': 'http://localhost/clusters/40eacf0d-eef3-46b8-8122-9ee614a0651e', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_all_projects +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_all_projects ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_no_cluster_template_id magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_no_cluster_template_id ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_internal_attr -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_internal_attr ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_pagination_marker ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_resource_limit_reached magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_resource_limit_reached ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_internal_attr -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_internal_attr ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_set_project_id_and_user_id magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_set_project_id_and_user_id ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cinder_csi_disabled magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cinder_csi_disabled ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_multiple_cluster +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_multiple_cluster ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cluster_template_name magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cluster_template_name ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_update_mandatory_attr -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_update_mandatory_attr ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches -magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype -magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype_no_value -magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype_no_value ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name -magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name -magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid -magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid -magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_not_found +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_docker_volume_size +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_docker_volume_size ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_flavor_id +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_flavor_id ... ok -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "2584c11d-1c86-43e5-9c73-6a5940f09632"} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "d3e03c77-5ee7-44ba-9cbe-7b438256d291"} +{"uuid": "f112a4bf-d4a4-49cf-a61d-92d750f90964"} POST: /v1/clusters {'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -6713,7 +5915,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "6d7d24eb-e1ca-4608-8b42-b24a12dede62"} +{"uuid": "78adc5d6-2692-46a4-9a4d-f2cc4afea08f"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -6729,7 +5931,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "b3a99f1a-0d92-4793-8975-bf66ce7e1412"} +{"uuid": "b3ed680b-8807-4300-8ff8-319724ef5a20"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 403 Forbidden Content-Type: application/json @@ -6745,7 +5947,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "d304dad3-9bb1-42dc-805a-8d9fc3ba2d5c"} +{"uuid": "35494c66-7291-462c-895b-f9746b6cc04c"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': {'cinder_csi_enabled': 'false'}, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -6753,7 +5955,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "114e2e89-eff8-457c-906d-77bdf6215a08"} +{"uuid": "3f1c60f6-9260-429d-81c0-5651d2a9d457"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'clustermodel1', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -6761,7 +5963,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "9b12755e-397e-427a-a85f-0ccf17ec277f"} +{"uuid": "0a94818e-91fb-479a-bd28-1f2996760a56"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': 3, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -6769,60 +5971,68 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "580dea5c-2840-4a98-8015-237ba585fbd3"}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_docker_volume_size -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_docker_volume_size ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_flavor_id -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_flavor_id ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_docker_volume_size +{"uuid": "9f50ad55-4ea6-45ef-8393-de92b0c789c9"} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': 'm2.small', 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "9c2e3034-8b9b-4c7f-94ed-3673327d798f"} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': -1, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_docker_volume_size magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_docker_volume_size ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_already_exist -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_already_exist ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_not_exist -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_not_exist ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_name -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_admin +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_admin ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_not_found +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_not_found ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_ext_network magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_ext_network ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_uuid -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_multi_exist -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_multi_exist ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_flavor magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_flavor ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_non_exist -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_non_exist ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_name -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_name ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_uuid -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_keypair -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_keypair ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ... ok -magnum.tests.unit.api.test_expose.TestExpose.test_expose_with_rest_content_types -magnum.tests.unit.api.test_expose.TestExpose.test_expose_with_rest_content_types ... ok -magnum.tests.unit.api.test_expose.TestExpose.test_expose_without_rest_content_types -magnum.tests.unit.api.test_expose.TestExpose.test_expose_without_rest_content_types ... ok -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ... ok -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_clientfault -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_clientfault ... ok -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_serverfault -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_serverfault ... ok -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': 'm2.small', 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} -GOT:Response: 202 Accepted +GET: /v1/clusters?limit=3&marker=7724a6a3-5344-4302-a0c1-4358ee7e6056 {} +GOT:{'clusters': [{'uuid': '23cced22-329e-43c3-b7bc-37f3d0eeeb83', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/23cced22-329e-43c3-b7bc-37f3d0eeeb83', 'rel': 'self'}, {'href': 'http://localhost/clusters/23cced22-329e-43c3-b7bc-37f3d0eeeb83', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:06.899188+00:00', 'updated_at': None} +GET: /v1/clusters/cluster1 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:06.981108+00:00', 'updated_at': None} +GET: /v1/clusters/test_cluster {} +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "ca4fd8ef-fac0-4730-a95b-0445c0fe8055"} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': -1, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} +GET: /v1/clusters/not_found {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} +GET: /v1/clusters/ce43a44c-b631-4ce6-ac6d-579ca88c6a44 {} +GOT:{'uuid': 'ce43a44c-b631-4ce6-ac6d-579ca88c6a44', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/ce43a44c-b631-4ce6-ac6d-579ca88c6a44', 'rel': 'self'}, {'href': 'http://localhost/clusters/ce43a44c-b631-4ce6-ac6d-579ca88c6a44', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:07.169155+00:00', 'updated_at': None} +GET: /v1/clusters/2c6b4e29-daae-42c7-9059-bc6e53482ffa {} +GOT:{'uuid': '2c6b4e29-daae-42c7-9059-bc6e53482ffa', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/2c6b4e29-daae-42c7-9059-bc6e53482ffa', 'rel': 'self'}, {'href': 'http://localhost/clusters/2c6b4e29-daae-42c7-9059-bc6e53482ffa', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': '2c6b4e29-daae-42c7-9059-bc6e53482ffa', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:07.253226+00:00', 'updated_at': None} +GET: /v1/clusters/ab94c7b2-ee13-432f-862c-a77c027f2a09 {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster ab94c7b2-ee13-432f-862c-a77c027f2a09 could not be found", "detail": "Cluster ab94c7b2-ee13-432f-862c-a77c027f2a09 could not be found.", "links": []}]} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_FAILED', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'faults': {'test-master': 'fake_reason'}, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:07.380507+00:00', 'updated_at': None}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_failed_cluster +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_failed_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_keypair +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_keypair ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_merged_labels +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_merged_labels ... ok + GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -6878,28 +6088,18 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 404, "title": "test-key", "detail": "test-key", "links": []}]} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': 'invalid', 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_labels -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_labels ... ok -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_all_three -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_all_three ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_created -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_created ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_latest_update -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_latest_update ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_updated -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_updated ... ok - +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': 'invalid', 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute cluster", "detail": "Invalid input for field/attribute cluster. Value: '{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': 'invalid', 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False}'. Value not a valid dict: invalid", "links": []}]} +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute cluster", "detail": "Invalid input for field/attribute cluster. Value: '{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': 'invalid', 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False}'. Value not a valid dict: invalid", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_labels +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_labels ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_name +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_name ... ok + POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -6955,111 +6155,57 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: ''. Value should have a minimum character requirement of 1", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_name -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_keypair +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: ''. Value should have a minimum character requirement of 1", "links": []}]} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False, 'keypair': 'keypair2'} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "5c94f166-dba3-407c-9cec-3048c33c87da"}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_keypair magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_keypair ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_links +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_links ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_labels magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_labels ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_master_count_zero magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_master_count_zero ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_check_type -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_check_type ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_master_flavor_id magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_master_flavor_id ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_all_three -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_all_three ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_create -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_create ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_old_update -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_old_update ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_merge_labels magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_merge_labels ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_update -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_update ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_forced_down -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_forced_down ... ok + +GET: /v1/clusters/d61a31a0-1af8-4044-b2a1-7fca1ab2cbb6 {} +GOT:{'uuid': 'd61a31a0-1af8-4044-b2a1-7fca1ab2cbb6', 'name': 'cluster1', 'cluster_template_id': '6fb7512a-676d-4121-ade0-daf9a25ba0a6', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/d61a31a0-1af8-4044-b2a1-7fca1ab2cbb6', 'rel': 'self'}, {'href': 'http://localhost/clusters/d61a31a0-1af8-4044-b2a1-7fca1ab2cbb6', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {'label2': 'value2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:07.478232+00:00', 'updated_at': None} +GET: /v1/clusters/cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24 {} +GOT:{'uuid': 'cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24', 'rel': 'self'}, {'href': 'http://localhost/clusters/cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:07.559519+00:00', 'updated_at': None} +GET: /v1/clusters/cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24 {} +GOT:{'uuid': 'cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24', 'rel': 'self'}, {'href': 'http://localhost/clusters/cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:07.559519+00:00', 'updated_at': None} +GET: /clusters/cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24 {} +GOT:{'uuid': 'cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24', 'rel': 'self'}, {'href': 'http://localhost/clusters/cb2448ba-bc21-4ebe-bf6a-35e6f2f94b24', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:07.559519+00:00', 'updated_at': None} +GET: /v1/clusters {} +GOT:{'clusters': [{'uuid': '164e39e0-1d31-4ad9-b5b9-ef9958349dc9', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/164e39e0-1d31-4ad9-b5b9-ef9958349dc9', 'rel': 'self'}, {'href': 'http://localhost/clusters/164e39e0-1d31-4ad9-b5b9-ef9958349dc9', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '6c584806-aa6d-4da3-a4ee-42ca2bb527a2', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/6c584806-aa6d-4da3-a4ee-42ca2bb527a2', 'rel': 'self'}, {'href': 'http://localhost/clusters/6c584806-aa6d-4da3-a4ee-42ca2bb527a2', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'f81cbac8-07e3-407d-97f7-5cc45ac2a269', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/f81cbac8-07e3-407d-97f7-5cc45ac2a269', 'rel': 'self'}, {'href': 'http://localhost/clusters/f81cbac8-07e3-407d-97f7-5cc45ac2a269', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '24e916a5-a9c3-4424-965f-14d4c0b7fb67', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/24e916a5-a9c3-4424-965f-14d4c0b7fb67', 'rel': 'self'}, {'href': 'http://localhost/clusters/24e916a5-a9c3-4424-965f-14d4c0b7fb67', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'ec486d77-74af-428e-aaa9-7a222ad4c87c', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/ec486d77-74af-428e-aaa9-7a222ad4c87c', 'rel': 'self'}, {'href': 'http://localhost/clusters/ec486d77-74af-428e-aaa9-7a222ad4c87c', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_many +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_many ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_merge_labels_no_labels magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_merge_labels_no_labels ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_not_supported -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_not_supported ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_supported -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_supported ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_config_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_config_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_invalid_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_invalid_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_invalid_coe_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_invalid_coe_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_create ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_one +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_one ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_multi_images_same_name magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_multi_images_same_name ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_invalid -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_invalid ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_bm -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_bm ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_vm -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_vm ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_invalid_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_invalid_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_add_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_add_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_replace_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_replace_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_remove_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_remove_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_add_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_add_update ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_add_non_existent_property +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_add_non_existent_property ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_multi_keypair_same_name magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_multi_keypair_same_name ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_replace_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_replace_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_valid_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_valid_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_validate_cluster_properties -magnum.tests.unit.api.test_validation.TestValidation.test_validate_cluster_properties ... ok -magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor -magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_mandatory_property_fail +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_mandatory_property_fail ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_lb_multi_node magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_lb_multi_node ... ok -magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor_config_workers -magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor_config_workers ... ok -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_revision -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_revision ... ok -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_stamp -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_stamp ... ok -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_upgrade -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_upgrade ... ok -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_version -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_version ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_lb_one_node +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_lb_one_node ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_non_existent_property +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_non_existent_property ... ok -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False, 'keypair': 'keypair2'} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "b6a35a6f-4863-4c64-9375-0419d156ff07"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': {'key': 'value'}, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7067,7 +6213,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "3664cf94-ee7c-4a63-a11b-519708254938"} +{"uuid": "87e9c777-833e-4663-9392-2df2f51b456d"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 0, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -7083,7 +6229,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "8c50a397-d49e-49fe-a62c-1d4afd8920cb"} +{"uuid": "873d68c1-5bf1-4b20-aec1-b17001cfe83b"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': {'label2': 'value3', 'label4': 'value4'}, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': True} GOT:Response: 202 Accepted Content-Type: application/json @@ -7091,7 +6237,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "c84559dd-a6dc-4545-a586-33ef4d7900e4"} +{"uuid": "1d872471-bb33-438d-95bf-6253ed3fa1b1"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': True} GOT:Response: 202 Accepted Content-Type: application/json @@ -7099,7 +6245,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "78fb9873-4550-4a32-8bcb-cf88e0759d9a"} +{"uuid": "029e8e2a-c3b4-49ad-ab4e-02a41fa95be3"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 409 Conflict Content-Type: application/json @@ -7124,58 +6270,126 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 400, "title": "master_count must be 1 when master_lb_enabled is False", "detail": "master_count must be 1 when master_lb_enabled is False", "links": []}]} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'foo', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 1, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_lb_one_node -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_lb_one_node ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_master_count +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'foo', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "3af81f7c-f55e-4016-8b01-d07c10ce4916"} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_master_count magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_master_count ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_node_count magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_node_count ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_timeout magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_timeout ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_ok ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_node_count_negative magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_node_count_negative ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_non_existent_cluster_template_id magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_non_existent_cluster_template_id ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_non_existent_cluster_template_name magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_non_existent_cluster_template_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_name_failed +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_name_failed ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_nonexist_image magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_nonexist_image ... ok -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_with_details_and_path -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_with_details_and_path ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_template_id_failed +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_template_id_failed ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_on_os_distro_image magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_on_os_distro_image ... ok -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_without_details_and_path -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_without_details_and_path ... ok -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_none_arg -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_none_arg ... ok -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCert.test_get_decrypted_private_key -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCert.test_get_decrypted_private_key ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'fake-uuid'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_delete_cert -magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_delete_cert ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'fake-uuid'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_get_cert -magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_get_cert ... ok -magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_store_cert -magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_store_cert ... ok +GET: /v1/clusters {} +GOT:{'clusters': [{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Adding a new attribute /foo to the root of the resource is not allowed", "detail": "Adding a new attribute /foo to the root of the resource is not allowed.", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/uuid' is an internal attribute and can not be updated", "detail": "'/uuid' is an internal attribute and can not be updated", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/cluster_template_id' is a mandatory attribute and can not be removed", "detail": "'/cluster_template_id' is a mandatory attribute and can not be removed", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/non-existent', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'", "detail": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'. Reason: can't remove a non-existent object 'non-existent'", "links": []}]} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:08.363885+00:00', 'updated_at': None} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'op': 'remove'}] GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "93a2eeee-d84d-48ce-aa12-d076bf657e59"} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'merge_labels': False} +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 1, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:08.363885+00:00', 'updated_at': '2026-01-22T07:14:08.487166+00:00'} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/name', 'value': 'cluster_example_B', 'op': 'replace'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "cannot change cluster property(ies) name", "detail": "cannot change cluster property(ies) name.", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'value': '1e48baee-4526-4d9c-ab3d-7411626c7585', 'op': 'replace'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "cannot change cluster property(ies) cluster_template_id", "detail": "cannot change cluster property(ies) cluster_template_id.", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/health_status', 'value': 'HEALTHY', 'op': 'replace'}, {'path': '/health_status_reason', 'value': '{"api": "ok"}', 'op': 'replace'}] +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'HEALTHY', 'health_status_reason': {'api': 'ok'}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4', '172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:08.776578+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'}magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_health_status_ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_health_status_ok ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_invalid_node_count +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_invalid_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_negative +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_negative ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster_template_id +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster_template_id ... ok + GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "b568787f-ecb5-4ce1-912d-1e940ef172f6"} +{"uuid": "8c671ce2-afde-432d-8650-ae173a59bdb3"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7183,7 +6397,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "1f1c1670-29ee-4654-9aa0-fb9f394fd576"} +{"uuid": "b73458eb-8398-418f-9622-fc680507d787"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7191,7 +6405,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "8a46e50f-4b4b-4d78-9e85-57064a288ce7"} +{"uuid": "005bb18b-4f5b-4222-9483-8441af637181"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': -1, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -7200,14 +6414,14 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute node_count", "detail": "Invalid input for field/attribute node_count. Value: '-1'. Value should be greater or equal to 0", "links": []}]} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': '26593d49-6f71-4ead-a21d-cfb90ecd6412', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': '160409f0-63ee-419d-a815-af87c93512e9', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate 26593d49-6f71-4ead-a21d-cfb90ecd6412 could not be found", "detail": "ClusterTemplate 26593d49-6f71-4ead-a21d-cfb90ecd6412 could not be found.", "links": []}]} +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate 160409f0-63ee-419d-a815-af87c93512e9 could not be found", "detail": "ClusterTemplate 160409f0-63ee-419d-a815-af87c93512e9 could not be found.", "links": []}]} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'notfound', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -7239,33 +6453,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute create_timeout", "detail": "Invalid input for field/attribute create_timeout. Value: '-1'. Value should be greater or equal to 0", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_negative -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_negative ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_none -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_none ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_zero -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_zero ... ok -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_create_no_permission -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_create_no_permission ... ok -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_get_no_permission ... ok -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_update_no_permission -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_update_no_permission ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_create_no_permission -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_create_no_permission ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_delete_no_permission -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_delete_no_permission ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_valid_name -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_valid_name ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_detail_list_no_permission -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_detail_list_no_permission ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_no_permission ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_reader -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_reader ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_update_no_permission -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_update_no_permission ... ok - +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute create_timeout", "detail": "Invalid input for field/attribute create_timeout. Value: '-1'. Value should be greater or equal to 0", "links": []}]} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': None, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7273,7 +6461,23 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "1c23e309-2e90-4003-a6d0-53f0b6744681"} +{"uuid": "0330a116-d3c3-4f2c-9141-be139876b2fa"}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_none +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_none ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_zero +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_zero ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_valid_name +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_valid_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_multiple_cluster +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_multiple_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_zero_node_count +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_zero_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_not_found +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_not_found ... ok + POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 0, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7281,7 +6485,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "54ab417f-b964-4e61-a356-3595c923be79"} +{"uuid": "4f11e7a2-3c66-4c82-bd25-ebf71381f7f2"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'test_cluster123456', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7289,7 +6493,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "4e5f4bc6-2818-4e83-9d30-3e4a22a28763"} +{"uuid": "e87a9e20-e003-4333-ada2-eab815615b2a"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'test-cluster', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7297,7 +6501,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "880651b6-e664-4eed-af22-57fef62300a4"} +{"uuid": "00c62cc0-ceae-4782-bc48-ddb7f477daed"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'test.cluster', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7305,7 +6509,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "f7127478-f470-40c2-aabb-940725e02574"} +{"uuid": "0d09c7bf-65cf-4ca2-8676-2db804096f80"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'testcluster.', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7313,7 +6517,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "a8f01467-cdcb-44d1-9524-698fa9053055"} +{"uuid": "11292939-315a-402b-ad60-f36a9e6f0fc6"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'testcluster-', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7321,7 +6525,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "9a137916-7fa4-475f-8377-b0ce98c75a1a"} +{"uuid": "a55228a2-41c0-4f96-a374-17ed9254a03b"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'testcluster_', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7329,7 +6533,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "6d52cb7a-6466-427a-96e7-00644cee70e8"} +{"uuid": "3324c426-038b-42d0-83a2-bced6caa15a0"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'test.-_cluster', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7337,7 +6541,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "22130662-583b-4f23-a661-0f2b56d9faed"} +{"uuid": "ed72ba03-a744-4e37-8798-231a520c9e4c"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'Testcluster', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7345,86 +6549,40 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "27dafe0c-bd6d-4b21-87c3-b02eb6586176"} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 0, 'master_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_zero_node_count -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_zero_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_zero_node_count_fail +{"uuid": "7f197d99-7fc2-44d3-a654-ed952a1e11e4"} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 0, 'master_count': 3, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.10 +Vary: OpenStack-API-Version +{"uuid": "32db88ae-f7de-476b-adc8-1f855e686d50"} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 0, 'master_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_zero_node_count_fail magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_zero_node_count_fail ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_uuid_not_found +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_uuid_not_found ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_docker_volume_size magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_docker_volume_size ... ok -magnum.tests.unit.common.policies.test_magnum_service_policy.TestMagnumServicePolicy.test_get_all_no_permission -magnum.tests.unit.common.policies.test_magnum_service_policy.TestMagnumServicePolicy.test_get_all_no_permission ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_flavor_id magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_flavor_id ... ok -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_create_no_permission -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_create_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_as_admin +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_as_admin ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_keypair magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_keypair ... ok -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_delete_no_permission -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_delete_no_permission ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_labels magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_labels ... ok -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_all_no_permission -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_all_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_disabled +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_disabled ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_master_flavor_id magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_master_flavor_id ... ok -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_no_permission ... ok -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_update_no_permission -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_update_no_permission ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_merge_labels magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_merge_labels ... ok -magnum.tests.unit.common.test_exception.TestException.test_all_exceptions -magnum.tests.unit.common.test_exception.TestException.test_all_exceptions ... ok -magnum.tests.unit.common.test_exception.TestException.test_custom_message_is_templated -magnum.tests.unit.common.test_exception.TestException.test_custom_message_is_templated ... ok -magnum.tests.unit.common.test_exception.TestException.test_message_is_templated -magnum.tests.unit.common.test_exception.TestException.test_message_is_templated ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_empty -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_empty ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_name magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_name ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_exception -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_exception ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_conflict -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_conflict ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_notfound -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_notfound ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_as_admin -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_as_admin ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name_notfound -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name_notfound ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_conflict -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_conflict ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_not_found ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_notfound -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_notfound ... ok -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers ... ok -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_already_deleted -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_already_deleted ... ok -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_no_candidate -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_no_candidate ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize ... ok -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.10 -Vary: OpenStack-API-Version -{"uuid": "e7dbba08-7627-4af8-9e7e-cfc82c0efb83"} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 0, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -7439,7 +6597,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "0b2c0740-6927-4609-89c2-ddc85ab45f42"} +{"uuid": "0a49de85-aed5-42af-8009-c39f1879fc7c"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7447,7 +6605,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "5c3beec4-ddd5-44ec-aadc-3d4e089b819d"} +{"uuid": "81138406-c84a-4fd3-b3e6-87a77dd312b0"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7455,7 +6613,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "19202c36-58b6-4263-b0f6-8fa85db1477f"} +{"uuid": "0b644f30-e9de-477a-a79c-94279c25c0b2"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7463,7 +6621,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "a4ca679f-d3c0-4b2c-baed-5ae9e736c327"} +{"uuid": "33e07261-c680-401b-b3bc-ede6e56fa060"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7471,7 +6629,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "df85fe2b-430a-40ec-bf4f-ad5af690f3c9"} +{"uuid": "75d44362-4303-41c3-a1eb-49f3a2149adf"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': {'label2': 'value3', 'label4': 'value4'}, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7479,7 +6637,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "191e462a-ddb4-47ec-8b7a-0fd64939eec7"} +{"uuid": "e4fd13a4-3c77-41f2-848b-33fcfb080525"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -7487,60 +6645,250 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "17638767-6b03-408d-9aad-ee81d826b73e"} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2'} +{"uuid": "e1714514-23b5-493d-b736-3f0ca4b772aa"} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.8 +Openstack-Api-Version: container-infra 1.7 +Vary: OpenStack-API-Version +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:10.111811+00:00', 'updated_at': None} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': '428dfe2e-8e6d-4dfe-845e-92df1ffd5306'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.9 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a master nodegroup is not supported", "detail": "Resizing a master nodegroup is not supported.", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_master_nodegroup +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_master_nodegroup ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_greater_than_max +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_greater_than_max ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_less_than_min +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_less_than_min ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_enabled +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_enabled ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_nodegroup +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_nodegroup ... ok + +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': -1, 'op': 'replace'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute node_count", "detail": "Invalid input for field/attribute node_count. Value: '-1'. Value should be greater or equal to 0", "links": []}]} +PATCH: /v1/clusters/978c76d1-55cf-4dda-942f-32e764feb913 [{'path': '/name', 'value': 'cluster_example_B', 'op': 'replace'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 978c76d1-55cf-4dda-942f-32e764feb913 could not be found", "detail": "Cluster 978c76d1-55cf-4dda-942f-32e764feb913 could not be found.", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'value': '52efd010-a134-406f-8023-79b10bc4979c', 'op': 'replace'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "cannot change cluster property(ies) cluster_template_id", "detail": "cannot change cluster property(ies) cluster_template_id.", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': 4, 'op': 'replace'}] +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -POST: /v1/clusters/b8664d2a-45b6-41a2-8d82-5b9d92c245f6/actions/upgrade {'cluster_template': 'test_2'} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 4, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:09.231919+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +PATCH: /v1/clusters/cluster_example_A [{'path': '/node_count', 'value': 4, 'op': 'replace'}] GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.8 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "b8664d2a-45b6-41a2-8d82-5b9d92c245f6"} -POST: /v1/clusters/not_there/actions/upgrade {'cluster_template': 'test_2'} +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 4, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:09.389099+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +PATCH: /v1/clusters/test_cluster [{'path': '/name', 'value': 'test_cluster', 'op': 'replace'}] +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} +PATCH: /v1/clusters/not_found [{'path': '/name', 'value': 'not_found', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.8 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_there could not be found", "detail": "Cluster not_there could not be found.", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'not_there'}magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ct_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ct_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_master -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_master ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_worker -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_worker ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ng_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ng_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng_invalid_ct -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng_invalid_ct ... ok +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} +PATCH: /v1/clusters/7dd2f80f-26b7-44b6-958b-da510449635a [{'path': '/cluster_id', 'value': '7dd2f80f-26b7-44b6-958b-da510449635a', 'op': 'replace'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 7dd2f80f-26b7-44b6-958b-da510449635a could not be found", "detail": "Cluster 7dd2f80f-26b7-44b6-958b-da510449635a could not be found.", "links": []}]} +PATCH: /v1/clusters/8c82ec31-4704-425b-909c-c14f3c564750 [{'path': '/node_count', 'value': 4, 'op': 'replace'}] +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "8c82ec31-4704-425b-909c-c14f3c564750"} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/?rollback=False [{'path': '/node_count', 'value': 4, 'op': 'replace'}] +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.3 +Vary: OpenStack-API-Version +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/?rollback=True [{'path': '/node_count', 'value': 4, 'op': 'replace'}] +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.3 +Vary: OpenStack-API-Version +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': 0, 'op': 'replace'}] +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.10 +Vary: OpenStack-API-Version +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"}magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count_fail +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count_fail ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count_fail +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count_fail ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade ... ok magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_create magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_create ... ok magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_delete magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_delete ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_as_admin +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_as_admin ... ok magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_detail magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_detail ... ok magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_all magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_all ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_not_found ... ok magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_one magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ct_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ct_not_found ... ok magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_update magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_update ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_master +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_master ... ok magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_delete magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_delete ... ok magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_get_one magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_worker +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_worker ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_update +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_update ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ng_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ng_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_as_admin +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_as_admin ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_not_found ... ok +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': '8c3c09e9-e058-439b-95d6-51904e057928'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.9 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing test-worker outside the allowed range: min_node_count = 1, max_node_count = 5", "detail": "Resizing test-worker outside the allowed range: min_node_count = 1, max_node_count = 5", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 3, 'nodegroup': '516d77a0-67cb-42b6-bbe9-e7220c3737a7'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.9 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing test-worker outside the allowed range: min_node_count = 4, max_node_count = None", "detail": "Resizing test-worker outside the allowed range: min_node_count = 4, max_node_count = None", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': '3abcf457-4a44-4891-bfe2-cda48faa4a66'} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.9 +Vary: OpenStack-API-Version +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:14:10.436388+00:00', 'updated_at': None} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 0, 'nodegroup': 'e40465d9-737f-4035-b6a9-c372d91ac708'} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.10 +Vary: OpenStack-API-Version +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 0, 'nodegroup': '11263895-9821-4f33-a4f2-7d8b281de067'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.9 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a nodegroup to zero is not supported in the provided microversion", "detail": "Resizing a nodegroup to zero is not supported in the provided microversion.", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2'} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.8 +Vary: OpenStack-API-Version +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +POST: /v1/clusters/54487857-bdfd-43cd-8d1f-10b5eca6e09c/actions/upgrade {'cluster_template': 'test_2'} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.8 +Vary: OpenStack-API-Version +{"uuid": "54487857-bdfd-43cd-8d1f-10b5eca6e09c"} +POST: /v1/clusters/not_there/actions/upgrade {'cluster_template': 'test_2'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.8 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_there could not be found", "detail": "Cluster not_there could not be found.", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'not_there'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -7548,7 +6896,7 @@ Openstack-Api-Version: container-infra 1.8 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate not_there could not be found", "detail": "ClusterTemplate not_there could not be found.", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2', 'nodegroup': 'd7c7cbd9-b438-4c57-87f4-31cc4728940a'} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2', 'nodegroup': '811119c3-f980-40ed-aa32-7af63eadfe0b'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -7556,7 +6904,7 @@ Openstack-Api-Version: container-infra 1.9 Vary: OpenStack-API-Version {"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2', 'nodegroup': 'ee9a1b27-586a-45db-bf0e-24f8dbc97323'} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2', 'nodegroup': '3da8d3c4-d1ce-4259-aff7-738edd12aa11'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -7587,7 +6935,19 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.9 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Cluster Template is not valid for upgrade: Nodegroup test_ng can be upgraded only to match cluster's template (test_1)", "detail": "Cluster Template is not valid for upgrade: Nodegroup test_ng can be upgraded only to match cluster's template (test_1).", "links": []}]} +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Cluster Template is not valid for upgrade: Nodegroup test_ng can be upgraded only to match cluster's template (test_1)", "detail": "Cluster Template is not valid for upgrade: Nodegroup test_ng can be upgraded only to match cluster's template (test_1).", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng_invalid_ct +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng_invalid_ct ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplateObject.test_cluster_template_init +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplateObject.test_cluster_template_init ... ok + +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': 0, 'op': 'replace'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.9 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a nodegroup to zero is not supported in the provided microversion", "detail": "Resizing a nodegroup to zero is not supported in the provided microversion.", "links": []}]} POST: /v1/clustertemplates {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'image_id': 'ubuntu', 'flavor_id': 'm1.small', 'master_flavor_id': 'm1.small', 'keypair_id': 'keypair1', 'external_network_id': 'd1f02cfb-d27f-4068-9332-84d907cb0e2e', 'fixed_network': 'private', 'fixed_subnet': 'private-subnet', 'network_driver': None, 'volume_driver': None, 'dns_nameserver': '8.8.1.1', 'apiserver_port': 8080, 'docker_volume_size': 20, 'docker_storage_driver': 'devicemapper', 'cluster_distro': 'fedora-coreos', 'coe': 'kubernetes', 'labels': {'key1': 'val1', 'key2': 'val2'}, 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'registry_enabled': False, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'hidden': False, 'tags': '', 'driver': ''} GOT:Response: 403 Forbidden Content-Type: application/json @@ -7604,7 +6964,7 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow clustertemplate:delete to be performed", "detail": "Policy doesn't allow clustertemplate:delete to be performed.", "links": []}]} -GET: /v1/clustertemplates/b882ae62-d874-44ca-9e9e-1474aa7797bd/detail {} +GET: /v1/clustertemplates/af5ff9a9-5f7f-4381-83bb-d9e2a925046a/detail {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -7659,27 +7019,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow clustertemplate:update to be performed", "detail": "Policy doesn't allow clustertemplate:update to be performed.", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_update -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_update ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_as_admin -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_cluster -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_multiple_cluster_template_by_name -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_multiple_cluster_template_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_add_root_non_existent -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_add_root_non_existent ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_create_cluster_template_with_no_os_distro_image -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_create_cluster_template_with_no_os_distro_image ... ok - +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow clustertemplate:update to be performed", "detail": "Policy doesn't allow clustertemplate:update to be performed.", "links": []}]} DELETE: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 @@ -7695,21 +7035,21 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found", "detail": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.", "links": []}]} -DELETE: /v1/clustertemplates/8e2874db-046e-4120-a57a-8bf7fbaca5ad +DELETE: /v1/clustertemplates/50ddfc26-9e52-4809-bf87-2548a4029687 GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -DELETE: /v1/clustertemplates/4caaf6c5-bfc6-4964-bda5-38e138d0fd9b +DELETE: /v1/clustertemplates/47a99926-4a1b-4d3a-8d9b-cfccc8c18bf5 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate 4caaf6c5-bfc6-4964-bda5-38e138d0fd9b could not be found", "detail": "ClusterTemplate 4caaf6c5-bfc6-4964-bda5-38e138d0fd9b could not be found.", "links": []}]} +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate 47a99926-4a1b-4d3a-8d9b-cfccc8c18bf5 could not be found", "detail": "ClusterTemplate 47a99926-4a1b-4d3a-8d9b-cfccc8c18bf5 could not be found.", "links": []}]} DELETE: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 400 Bad Request Content-Type: application/json @@ -7717,30 +7057,33 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters", "detail": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters.", "links": []}]} -DELETE: /v1/clustertemplates/clustermodel1 -GOT:Response: 204 No Content -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters", "detail": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters.", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_cluster +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_add_root_non_existent +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_add_root_non_existent ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_create_cluster_template_with_no_os_distro_image +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_create_cluster_template_with_no_os_distro_image ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_multiple_cluster_template_by_name +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_multiple_cluster_template_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestFederationObject.test_federation_init +magnum.tests.unit.api.controllers.v1.test_federation.TestFederationObject.test_federation_init ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_mandatory_property_fail +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_mandatory_property_fail ... ok +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_empty +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_empty ... ok +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_many +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_many ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_non_existent_property_fail +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_non_existent_property_fail ... ok +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_one +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceEnforcement.test_policy_disallow_get_all +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceEnforcement.test_policy_disallow_get_all ... ok -DELETE: /v1/clustertemplates/not_found -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate not_found could not be found", "detail": "ClusterTemplate not_found could not be found.", "links": []}]} -DELETE: /v1/clustertemplates/test_cluster_template -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple ClusterTemplates exist with same name", "detail": "Multiple ClusterTemplates exist with same name. Please use the ClusterTemplate uuid instead.", "links": []}]} PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json @@ -7812,21 +7155,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/registry_enabled' is a mandatory attribute and can not be removed", "detail": "'/registry_enabled' is a mandatory attribute and can not be removed", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_mandatory_property_fail -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_mandatory_property_fail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_non_existent_property_fail -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_non_existent_property_fail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_singular -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_singular ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_uuid -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_external_network_id -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_external_network_id ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_flavor_id -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_flavor_id ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_image_id -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_image_id ... ok - +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/registry_enabled' is a mandatory attribute and can not be removed", "detail": "'/registry_enabled' is a mandatory attribute and can not be removed", "links": []}]} PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/cluster_distro', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json @@ -7852,17 +7181,41 @@ Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'", "detail": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'. Reason: can't remove a non-existent object 'non-existent'", "links": []}]} GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:20.764353+00:00', 'updated_at': None} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/dns_nameserver', 'op': 'remove'}] +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:14:11.533089+00:00', 'updated_at': None} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/dns_nameserver', 'op': 'remove'}]magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_singular +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_singular ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_all +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_all ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_uuid +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_one +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_external_network_id +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_external_network_id ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_flavor_id +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_flavor_id ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_internal_attr +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_internal_attr ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_image_id +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_image_id ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_keypair_id +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_keypair_id ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_min_node_count +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_min_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_non_existent_property +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_non_existent_property ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_singular +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_singular ... ok + GOT:Response: 200 OK Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": null, "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:20.764353+00:00", "updated_at": null} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": null, "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:14:11.533089+00:00", "updated_at": null} GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': None, 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:20.764353+00:00', 'updated_at': '2026-01-22T07:06:20.787944+00:00'} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': None, 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:14:11.533089+00:00', 'updated_at': '2026-01-22T07:14:11.591375+00:00'} PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json @@ -7902,15 +7255,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "aaa", "detail": "aaa", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_keypair_id -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_keypair_id ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_singular -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_singular ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_as_admin -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_hidden_with_cluster_allow_update -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_hidden_with_cluster_allow_update ... ok - +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "aaa", "detail": "aaa", "links": []}]} PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json @@ -7918,277 +7263,66 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:20.932326+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_B', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:20.932326+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} -PATCH: /v1/clustertemplates/c8a3dbff-36bb-4430-a203-dbc52ed4c930 [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "c8a3dbff-36bb-4430-a203-dbc52ed4c930", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "ubuntu", "flavor_id": "m1.small", "master_flavor_id": "m1.small", "dns_nameserver": "8.8.1.1", "keypair_id": "keypair1", "external_network_id": "d1f02cfb-d27f-4068-9332-84d907cb0e2e", "fixed_network": "private", "fixed_subnet": "private-subnet", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/c8a3dbff-36bb-4430-a203-dbc52ed4c930", "rel": "self"}, {"href": "http://localhost/clustertemplates/c8a3dbff-36bb-4430-a203-dbc52ed4c930", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": null, "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "c8a3dbff-36bb-4430-a203-dbc52ed4c930", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:20.973187+00:00", "updated_at": null} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": true, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:21.002568+00:00", "updated_at": null} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:14:11.883346+00:00", "updated_at": null} GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': True, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:21.002568+00:00', 'updated_at': '2026-01-22T07:06:21.028892+00:00'} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:21.048804+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_name_with_cluster -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_name_with_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_replace_labels_success -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_replace_labels_success ... ok -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster ... ok -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_with_stack_not_found -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_with_stack_not_found ... ok -magnum.tests.unit.common.test_profiler.TestProfiler.test_all_public_methods_are_traced -magnum.tests.unit.common.test_profiler.TestProfiler.test_all_public_methods_are_traced ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster_allow_update -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster_allow_update ... ok -magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler -magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler ... ok -magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler_without_osprofiler -magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler_without_osprofiler ... ok -magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_deserialize_context -magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_deserialize_context ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_devicemapper -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_devicemapper ... ok -magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_serialize_context -magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_serialize_context ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_add_extra_exmods -magnum.tests.unit.common.test_rpc.TestRpc.test_add_extra_exmods ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup -magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_fail -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_fail ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_notifier_null -magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_notifier_null ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_transport_null -magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_transport_null ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_clear_extra_exmods -magnum.tests.unit.common.test_rpc.TestRpc.test_clear_extra_exmods ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_get_client -magnum.tests.unit.common.test_rpc.TestRpc.test_get_client ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_get_client_profiler_enabled -magnum.tests.unit.common.test_rpc.TestRpc.test_get_client_profiler_enabled ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_get_server -magnum.tests.unit.common.test_rpc.TestRpc.test_get_server ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_get_server_profiler_enabled -magnum.tests.unit.common.test_rpc.TestRpc.test_get_server_profiler_enabled ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url -magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url ... ok +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_B', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:14:11.883346+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +PATCH: /v1/clustertemplates/6c67c669-becf-47c2-972f-7d476af438a3 [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'replace'}] +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_as_admin +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_as_admin ... ok -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/labels', 'value': "{'etcd_volume_size': '1'}", 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"etcd_volume_size": "1"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:21.089669+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'etcd_volume_size': '1'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:21.089669+00:00', 'updated_at': '2026-01-22T07:06:21.110066+00:00'} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/network_driver', 'value': 'flannel', 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters", "detail": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters.", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": true, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:21.170193+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': True, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:21.170193+00:00', 'updated_at': '2026-01-22T07:06:21.196663+00:00'} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/docker_storage_driver', 'value': 'devicemapper', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json +DELETE: /v1/clustertemplates/clustermodel1 +GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:21.215124+00:00", "updated_at": null} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}] -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}]magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_success -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_success ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_not_found ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url_null -magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url_null ... ok -magnum.tests.unit.common.test_rpc.TestRpc.test_serialize_entity -magnum.tests.unit.common.test_rpc.TestRpc.test_serialize_entity ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_fail -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_fail ... ok -magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_none -magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_none ... ok -magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_not_none -magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_not_none ... ok -magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_12 -magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_12 ... ok -magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_16 -magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_16 ... ok -magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_60 -magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_60 ... ok -magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_8 -magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_8 ... ok -magnum.tests.unit.common.test_short_id.ShortIdTest.test_generate_ids -magnum.tests.unit.common.test_short_id.ShortIdTest.test_generate_ids ... ok -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_string -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_string ... ok -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid1 -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid1 ... ok -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_0 -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_0 ... ok -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_1 -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_1 ... ok -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_endianness -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_endianness ... ok -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_f -magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_f ... ok -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get ... ok -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_exceed_manifest_size -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_exceed_manifest_size ... ok -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_unsupported_scheme -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_unsupported_scheme ... ok -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... ok -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... ok -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_success -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_success ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestFederationObject.test_federation_init -magnum.tests.unit.api.controllers.v1.test_federation.TestFederationObject.test_federation_init ... ok -magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_k8s_quantity -magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_k8s_quantity ... ok -magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_openstasck_ca -magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_openstasck_ca ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_cluster_already_member -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_cluster_already_member ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_non_existent_cluster -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_non_existent_cluster ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": true, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:21.280929+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': True, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:21.280929+00:00', 'updated_at': '2026-01-22T07:06:21.297320+00:00'} -PATCH: /v1/clustertemplates/d5e297aa-3784-44c6-89cd-7838b503d24d [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'add'}] +DELETE: /v1/clustertemplates/not_found GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate d5e297aa-3784-44c6-89cd-7838b503d24d could not be found", "detail": "ClusterTemplate d5e297aa-3784-44c6-89cd-7838b503d24d could not be found.", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": true, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:21.360473+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': True, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:21.360473+00:00', 'updated_at': '2026-01-22T07:06:21.376974+00:00'} -PATCH: /v1/federations/c7e902ec-ede8-478c-a827-1cbbcb23f177 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate not_found could not be found", "detail": "ClusterTemplate not_found could not be found.", "links": []}]} +DELETE: /v1/clustertemplates/test_cluster_template GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "A cluster with UUID 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is already a member of the federation federation-example", "detail": "A cluster with UUID 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is already a member of the federation federation-example.", "links": []}]} -PATCH: /v1/federations/61c3a1aa-a708-4f5b-a9b3-04d472c769e9 [{'path': '/member_ids', 'value': '0264903a-a9c2-4110-a11e-44a42cf8f485', 'op': 'add'}] -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 0264903a-a9c2-4110-a11e-44a42cf8f485 could not be found", "detail": "Cluster 0264903a-a9c2-4110-a11e-44a42cf8f485 could not be found.", "links": []}]} -PATCH: /v1/federations/36022e2f-b261-4fb5-ad02-c42cc0d9918e [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "36022e2f-b261-4fb5-ad02-c42cc0d9918e"} -GET: /v1/federations/36022e2f-b261-4fb5-ad02-c42cc0d9918e {} -GOT:{'uuid': '36022e2f-b261-4fb5-ad02-c42cc0d9918e', 'name': 'federation-example', 'hostcluster_id': 'fake_master', 'member_ids': ['5d12f6fd-a196-4bf0-ae4c-1f639a523a52'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/36022e2f-b261-4fb5-ad02-c42cc0d9918e', 'rel': 'self'}, {'href': 'http://localhost/federations/36022e2f-b261-4fb5-ad02-c42cc0d9918e', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:21.457730+00:00', 'updated_at': '2026-01-22T07:06:21.476716+00:00'}magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_join -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_join ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_unjoin -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_unjoin ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_existent_cluster -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_existent_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_member_cluster -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_member_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceObject.test_msvc_obj_fields_filtering -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceObject.test_msvc_obj_fields_filtering ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_has_publickey -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_has_publickey ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_internal_attr -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_internal_attr ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_min_node_count -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_min_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_non_existent_property -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_non_existent_property ... ok - -PATCH: /v1/federations/e2d85f57-8206-4022-820b-321981bcdb18 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'remove'}] -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple ClusterTemplates exist with same name", "detail": "Multiple ClusterTemplates exist with same name. Please use the ClusterTemplate uuid instead.", "links": []}]} +GET: /v1/mservices {} +GOT:{'mservices': []} +GET: /v1/mservices {} +GOT:{'mservices': [{'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 1, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 2, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 3, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 4, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 5, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}]} +GET: /v1/mservices {} +GOT:{'mservices': [{'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 1, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}]} +GET: /v1/mservices {} +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "e2d85f57-8206-4022-820b-321981bcdb18"} -GET: /v1/federations/e2d85f57-8206-4022-820b-321981bcdb18 {} -GOT:{'uuid': 'e2d85f57-8206-4022-820b-321981bcdb18', 'name': 'federation-example', 'hostcluster_id': 'fake_master', 'member_ids': [], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/e2d85f57-8206-4022-820b-321981bcdb18', 'rel': 'self'}, {'href': 'http://localhost/federations/e2d85f57-8206-4022-820b-321981bcdb18', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:21.501249+00:00', 'updated_at': '2026-01-22T07:06:21.513485+00:00'} -PATCH: /v1/federations/4d7365d3-e3f2-4b1c-a5f7-127af5ea78e8 [{'path': '/member_ids', 'value': 'a9169f1b-ebb9-4797-8d1e-6f6bd8cf419b', 'op': 'remove'}] -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow magnum-service:get_all to be performed", "detail": "Policy doesn't allow magnum-service:get_all to be performed.", "links": []}]} +GET: /v1/clusters/7f6b2663-4611-4a72-b44a-a5f7984c89d0/nodegroups {} +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster a9169f1b-ebb9-4797-8d1e-6f6bd8cf419b could not be found", "detail": "Cluster a9169f1b-ebb9-4797-8d1e-6f6bd8cf419b could not be found.", "links": []}]} -PATCH: /v1/federations/db525410-fb41-4bf9-9cdf-c84eaeaa6347 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'remove'}] -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow nodegroup:get_all to be performed", "detail": "Policy doesn't allow nodegroup:get_all to be performed.", "links": []}]} +GET: /v1/clusters/2404008c-af19-4130-8907-3bc72e54b530/nodegroups/719038f2-1b74-4cbb-b35d-bbd1ed229ed5 {} +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is not a member of the federation federation-example", "detail": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is not a member of the federation federation-example.", "links": []}]} +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow nodegroup:get to be performed", "detail": "Policy doesn't allow nodegroup:get to be performed.", "links": []}]} PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/node_count', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json @@ -8204,9 +7338,9 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 0, "max_node_count": 5, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:21.858820+00:00", "updated_at": null} +{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 0, "max_node_count": 5, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:14:11.801349+00:00", "updated_at": null} GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} -GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 0, 'max_node_count': 5, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:21.858820+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 0, 'max_node_count': 5, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:14:11.801349+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/not_there', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json @@ -8222,25 +7356,67 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": null, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:21.940060+00:00", "updated_at": null} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} -GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': None, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:21.940060+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_ok +{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": null, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:14:11.991894+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_ok magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_ok ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_hidden_with_cluster_allow_update +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_hidden_with_cluster_allow_update ... ok magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_max_node_count_failed magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_max_node_count_failed ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_name_with_cluster +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_name_with_cluster ... ok magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_min_node_count_failed magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_min_node_count_failed ... ok magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_node_count_failed magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_node_count_failed ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_extentions_as_ca -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_extentions_as_ca ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "6c67c669-becf-47c2-972f-7d476af438a3", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "ubuntu", "flavor_id": "m1.small", "master_flavor_id": "m1.small", "dns_nameserver": "8.8.1.1", "keypair_id": "keypair1", "external_network_id": "d1f02cfb-d27f-4068-9332-84d907cb0e2e", "fixed_network": "private", "fixed_subnet": "private-subnet", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/6c67c669-becf-47c2-972f-7d476af438a3", "rel": "self"}, {"href": "http://localhost/clustertemplates/6c67c669-becf-47c2-972f-7d476af438a3", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": null, "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "6c67c669-becf-47c2-972f-7d476af438a3", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:14:11.967066+00:00", "updated_at": null} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": true, "tags": "", "driver": "", "created_at": "2026-01-22T07:14:12.031744+00:00", "updated_at": null} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': True, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:14:12.031744+00:00', 'updated_at': '2026-01-22T07:14:12.069306+00:00'} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:14:12.115513+00:00", "updated_at": null} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/labels', 'value': "{'etcd_volume_size': '1'}", 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"etcd_volume_size": "1"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:14:12.173641+00:00", "updated_at": null} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'etcd_volume_size': '1'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:14:12.173641+00:00', 'updated_at': '2026-01-22T07:14:12.194345+00:00'}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_replace_labels_success +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_replace_labels_success ... ok magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster_allow_update +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster_allow_update ... ok magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok_by_name magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_wrong_microversion -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_wrong_microversion ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_devicemapper +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_devicemapper ... ok +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} +GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': None, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:14:11.991894+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/max_node_count', 'value': 1, 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json @@ -8272,9 +7448,9 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:22.081326+00:00", "updated_at": null} +{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:14:12.242614+00:00", "updated_at": null} GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} -GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': 4, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:22.081326+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': 4, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:14:12.242614+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] GOT:Response: 202 Accepted Content-Type: application/json @@ -8282,215 +7458,205 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:22.128071+00:00", "updated_at": null} +{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:14:12.343334+00:00", "updated_at": null} GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} -GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': 4, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:22.128071+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': 4, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:14:12.343334+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} -PATCH: /v1/clusters/b66372e4-2fc0-473a-a06d-45f2bf651889/nodegroups/cfd536be-261a-4676-b12f-4a4910df9d4c [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"id": 50, "uuid": "cfd536be-261a-4676-b12f-4a4910df9d4c", "name": "nodegroup1", "cluster_id": "b66372e4-2fc0-473a-a06d-45f2bf651889", "project_id": "fake", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/b66372e4-2fc0-473a-a06d-45f2bf651889/nodegroups/cfd536be-261a-4676-b12f-4a4910df9d4c", "rel": "self"}, {"href": "http://localhost/clusters/b66372e4-2fc0-473a-a06d-45f2bf651889/nodegroups/cfd536be-261a-4676-b12f-4a4910df9d4c", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:22.214974+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_update_nodegroup_as_admin +{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_wrong_microversion +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_wrong_microversion ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_fail +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_fail ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_update_nodegroup_as_admin magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_update_nodegroup_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_master_ng -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_master_ng ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_cluster_no_api_address -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_cluster_no_api_address ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_same_name -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_same_name ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_issuer_name -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_issuer_name ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_labels -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_labels ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels_no_labels -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels_no_labels ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_wrong_microversion -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_wrong_microversion ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_success +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_success ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_hard_limit +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_hard_limit ... ok -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'master', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/network_driver', 'value': 'flannel', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Creating master nodegroups is currently not supported", "detail": "Creating master nodegroups is currently not supported.", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Cluster API address is not available yet", "detail": "Cluster API address is not available yet", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'test-master', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "A node group with name test-master already exists in the cluster cluster1", "detail": "A node group with name test-master already exists in the cluster cluster1.", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label3': 'value3'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "18ff6628-700b-4b9d-a3a2-536a13ef1f2e", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label3": "value3"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/18ff6628-700b-4b9d-a3a2-536a13ef1f2e", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/18ff6628-700b-4b9d-a3a2-536a13ef1f2e", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {"label3": "value3"}, "labels_skipped": {"label1": "value1", "label2": "value2"}, "created_at": "2026-01-22T07:06:22.363176+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': True} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters", "detail": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters.", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "41bcb1de-1edf-43bf-b6b5-eef7cfd94966", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value3", "label2": "value2", "label4": "value4"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/41bcb1de-1edf-43bf-b6b5-eef7cfd94966", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/41bcb1de-1edf-43bf-b6b5-eef7cfd94966", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {"label1": "value1"}, "labels_added": {"label4": "value4"}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:22.402293+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': True} -GOT:Response: 202 Accepted +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": true, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:14:12.317168+00:00", "updated_at": null} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': True, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:14:12.317168+00:00', 'updated_at': '2026-01-22T07:14:12.378257+00:00'} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/docker_storage_driver', 'value': 'devicemapper', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "f99cbe33-65ca-47bf-bb47-1ea8b156b7b4", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value1", "label2": "value2"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/f99cbe33-65ca-47bf-bb47-1ea8b156b7b4", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/f99cbe33-65ca-47bf-bb47-1ea8b156b7b4", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:22.440979+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'new_ng', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:14:12.415915+00:00", "updated_at": null} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}] +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "17e1b919-c740-4139-85b3-35db6129b597", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/17e1b919-c740-4139-85b3-35db6129b597", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/17e1b919-c740-4139-85b3-35db6129b597", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_invalid_node_count -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_invalid_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_only_name -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_only_name ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_flavor -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_flavor ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_image_id -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_image_id ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_labels -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_labels ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_subject_name -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_subject_name ... ok +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": true, "tags": "", "driver": "", "created_at": "2026-01-22T07:14:12.567760+00:00", "updated_at": null} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': True, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:14:12.567760+00:00', 'updated_at': '2026-01-22T07:14:12.600655+00:00'} +PATCH: /v1/clustertemplates/88048e05-e323-4e86-8520-37bfc1017890 [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'add'}]magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_resource +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_resource ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_no_project_id +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_no_project_id ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_fail +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_fail ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_project_id_not_found +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_project_id_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_success +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_success ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_zero_quota +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_zero_quota ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_delete_quota +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_delete_quota ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_empty +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_empty ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_not_found +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name_not_found +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants_false +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants_false ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_with_pagination_marker ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_against_single +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_against_single ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_not_all_tenants +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_not_all_tenants ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_with_pagination_marker ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_non_admin +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_non_admin ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_empty +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_empty ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_non_admin_context +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_non_admin_context ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_all_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_all_with_pagination_marker ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_pagination_limit +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_pagination_limit ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one ... ok -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 7, 'role': 'worker', 'max_node_count': 5, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "max_node_count for nodegroup1 is invalid (node_count (7) should be less or equal to max_node_count (5))", "detail": "max_node_count for nodegroup1 is invalid (node_count (7) should be less or equal to max_node_count (5)).", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 2, 'role': 'worker', 'max_node_count': None, 'min_node_count': 3, 'merge_labels': False} -GOT:Response: 409 Conflict +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2))", "detail": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2)).", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'name': 'test_ng'} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate 88048e05-e323-4e86-8520-37bfc1017890 could not be found", "detail": "ClusterTemplate 88048e05-e323-4e86-8520-37bfc1017890 could not be found.", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 3, "uuid": "e718bbb2-2dca-40fc-a406-b093c276c335", "name": "test_ng", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/e718bbb2-2dca-40fc-a406-b093c276c335", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/e718bbb2-2dca-40fc-a406-b093c276c335", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 1, "role": "worker", "min_node_count": 0, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': 'test_flavor', 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted -Content-Type: application/json +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": true, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:14:12.775658+00:00", "updated_at": null} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': True, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:14:12.775658+00:00', 'updated_at': '2026-01-22T07:14:12.805251+00:00'} +DELETE: /v1/federations/89646c2b-58a9-4544-900e-db1357d860b0 +GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "526e4241-dd26-41ea-a39d-c5d35a5bd904", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/526e4241-dd26-41ea-a39d-c5d35a5bd904", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/526e4241-dd26-41ea-a39d-c5d35a5bd904", "rel": "bookmark"}], "flavor_id": "test_flavor", "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted + +GET: /v1/federations/89646c2b-58a9-4544-900e-db1357d860b0 {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "881eb30f-761a-41ca-81ba-4747f76bb381", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/881eb30f-761a-41ca-81ba-4747f76bb381", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/881eb30f-761a-41ca-81ba-4747f76bb381", "rel": "bookmark"}], "flavor_id": null, "image_id": "test_image", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label1': 'value1'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation 89646c2b-58a9-4544-900e-db1357d860b0 could not be found", "detail": "Federation 89646c2b-58a9-4544-900e-db1357d860b0 could not be found.", "links": []}]} +DELETE: /v1/federations/7d5e850b-a8bf-452a-8b77-b71426c04f8a +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "68bef155-55fe-4c71-b071-46e7a271be36", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value1"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/68bef155-55fe-4c71-b071-46e7a271be36", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/68bef155-55fe-4c71-b071-46e7a271be36", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {"label1": "value1"}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': 5, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted -Content-Type: application/json +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation 7d5e850b-a8bf-452a-8b77-b71426c04f8a could not be found", "detail": "Federation 7d5e850b-a8bf-452a-8b77-b71426c04f8a could not be found.", "links": []}]} +DELETE: /v1/federations/federation-example +GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "9e2fb217-2679-48e6-8634-1b0d7c1184c6", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/9e2fb217-2679-48e6-8634-1b0d7c1184c6", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/9e2fb217-2679-48e6-8634-1b0d7c1184c6", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": 5, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_max_node_count -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_max_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_role -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_role ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_zero_nodes -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_zero_nodes ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_without_node_count -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_without_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_hard_limit -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_hard_limit ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_resource -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_resource ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_no_project_id -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_no_project_id ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_project_id_not_found -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_project_id_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_zero_quota -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_zero_quota ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_with_bytes_issuer_name -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_with_bytes_issuer_name ... ok -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'test-role', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted +DELETE: /v1/federations/foo +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "b16fe9e0-9a82-42ec-9d92-6adb2a5b5098", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/b16fe9e0-9a82-42ec-9d92-6adb2a5b5098", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/b16fe9e0-9a82-42ec-9d92-6adb2a5b5098", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "test-role", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 0, 'role': 'worker', 'max_node_count': None, 'min_node_count': 0, 'merge_labels': False} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation foo could not be found", "detail": "Federation foo could not be found.", "links": []}]} +GET: /v1/federations/detail {} +GOT:{'federations': [{'uuid': '82b77ec3-e808-44f9-ae58-270f9f81c5fb', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/82b77ec3-e808-44f9-ae58-270f9f81c5fb', 'rel': 'self'}, {'href': 'http://localhost/federations/82b77ec3-e808-44f9-ae58-270f9f81c5fb', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:14:13.038586+00:00', 'updated_at': None}]} +GET: /v1/federations/b401b0af-8120-4ade-8b4d-4e55b339b5de/detail {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "15bfcb4c-99ae-4e52-9762-23a53497db59", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/15bfcb4c-99ae-4e52-9762-23a53497db59", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/15bfcb4c-99ae-4e52-9762-23a53497db59", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 0, "role": "worker", "min_node_count": 0, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "The %(name)s resource %(id)s could not be found", "detail": "The %(name)s resource %(id)s could not be found.", "links": []}]} +GET: /v1/federations/detail?limit=3&marker=e2279b0a-1825-44d0-b463-77a3e72fa0da {} +GOT:{'federations': [{'uuid': '996b9d1e-522e-4f02-9c42-457a7f10b8d2', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/996b9d1e-522e-4f02-9c42-457a7f10b8d2', 'rel': 'self'}, {'href': 'http://localhost/federations/996b9d1e-522e-4f02-9c42-457a7f10b8d2', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:14:13.137532+00:00', 'updated_at': None}]} +GET: /v1/federations {} +GOT:{'federations': []} +GET: /v1/federations?limit=3&marker=538ae863-79a0-4bc8-bf09-69120e2195ea {} +GOT:{'federations': [{'uuid': '03f4b9ba-eff9-49b2-b871-712840e5a80f', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/03f4b9ba-eff9-49b2-b871-712840e5a80f', 'rel': 'self'}, {'href': 'http://localhost/federations/03f4b9ba-eff9-49b2-b871-712840e5a80f', 'rel': 'bookmark'}]}]} +GET: /v1/federations/5543bb8e-d340-4fa5-b2a6-f96a27418c57 {} +GOT:{'uuid': '5543bb8e-d340-4fa5-b2a6-f96a27418c57', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/5543bb8e-d340-4fa5-b2a6-f96a27418c57', 'rel': 'self'}, {'href': 'http://localhost/federations/5543bb8e-d340-4fa5-b2a6-f96a27418c57', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:14:13.279206+00:00', 'updated_at': None}magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_no_config_default +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_no_config_default ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_multiple_federation +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_multiple_federation ... ok + +PATCH: /v1/clusters/b3dd9c44-6400-49f1-a3a6-9d47eadf4af1/nodegroups/8e5b7986-d462-4015-a111-3ff81666671b [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"id": 12, "uuid": "125bf013-5d08-4b4f-82c7-9ad4ae3e6687", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/125bf013-5d08-4b4f-82c7-9ad4ae3e6687", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/125bf013-5d08-4b4f-82c7-9ad4ae3e6687", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 1, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +{"id": 50, "uuid": "8e5b7986-d462-4015-a111-3ff81666671b", "name": "nodegroup1", "cluster_id": "b3dd9c44-6400-49f1-a3a6-9d47eadf4af1", "project_id": "fake", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/b3dd9c44-6400-49f1-a3a6-9d47eadf4af1/nodegroups/8e5b7986-d462-4015-a111-3ff81666671b", "rel": "self"}, {"href": "http://localhost/clusters/b3dd9c44-6400-49f1-a3a6-9d47eadf4af1/nodegroups/8e5b7986-d462-4015-a111-3ff81666671b", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:14:12.541564+00:00", "updated_at": null} POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} GOT:Response: 201 Created Content-Type: application/json @@ -8498,7 +7664,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:22.863557+00:00", "updated_at": null} +{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:14:12.613492+00:00", "updated_at": null} POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': -10} GOT:Response: 400 Bad Request Content-Type: application/json @@ -8538,7 +7704,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 0, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:22.944810+00:00", "updated_at": null} +{"id": 42, "hard_limit": 0, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:14:12.824574+00:00", "updated_at": null} POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} GOT:Response: 201 Created Content-Type: application/json @@ -8546,161 +7712,187 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:22.961638+00:00", "updated_at": null} +{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:14:12.860468+00:00", "updated_at": null} DELETE: /v1/quotas/fake_project/Cluster GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_delete_quota -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_delete_quota ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_empty -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_empty ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants_false -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants_false ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_with_pagination_marker ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_not_all_tenants -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_not_all_tenants ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_non_admin -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_non_admin ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_non_admin_context -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_non_admin_context ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_pagination_limit -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_pagination_limit ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_no_config_default -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_no_config_default ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_not_authorized + +GET: /v1/quotas/fake_project/Cluster {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"hard_limit": 20, "project_id": "fake_project", "resource": "Cluster"} +GET: /v1/quotas {} +GOT:{'quotas': []} +GET: /v1/quotas?all_tenants=True {} +GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'proj-id-0', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:12.959781+00:00', 'updated_at': None}, {'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:12.961019+00:00', 'updated_at': None}, {'id': 3, 'hard_limit': 10, 'project_id': 'proj-id-2', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:12.962008+00:00', 'updated_at': None}, {'id': 4, 'hard_limit': 10, 'project_id': 'proj-id-3', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:12.964442+00:00', 'updated_at': None}]} +GET: /v1/quotas?all_tenants=False {} +GOT:{'quotas': [{'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:13.004635+00:00', 'updated_at': None}]} +GET: /v1/quotas?limit=3&marker=3&all_tenants=True {} +GOT:{'quotas': [{'id': 4, 'hard_limit': 10, 'project_id': 'proj-id-3', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:13.057718+00:00', 'updated_at': None}]} +GET: /v1/quotas {} +GOT:{'quotas': [{'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:13.101574+00:00', 'updated_at': None}]} +GET: /v1/quotas {} +GOT:{'quotas': [{'id': 3, 'hard_limit': 10, 'project_id': 'proj-id-2', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:13.150967+00:00', 'updated_at': None}]} +GET: /v1/quotas?all_tenants=True {} +GOT:{'quotas': []} +GET: /v1/quotas?limit=2&all_tenants=True {} +GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'proj-id-0', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:13.239538+00:00', 'updated_at': None}, {'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:13.240628+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/quotas?sort_key=id&sort_dir=asc&limit=2&marker=2'} +GET: /v1/quotas/fake_project/Cluster {} +GOT:{'id': 1, 'hard_limit': 10, 'project_id': 'fake_project', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:13.283407+00:00', 'updated_at': None} +GET: /v1/quotas/fake_project/Cluster {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"hard_limit": 20, "project_id": "fake_project", "resource": "Cluster"} +GET: /v1/quotas/invalid_proj/invalid_res {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Not authorized", "detail": "Not authorized.", "links": []}]}magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_not_authorized magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_not_authorized ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_not_found +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_not_found ... ok magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_with_config_default magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_with_config_default ... ok magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_one magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_one ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid_not_found +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid_not_found ... ok magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_links +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_links ... ok magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota_not_found magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota_not_found ... ok magnum.tests.unit.api.controllers.v1.test_quota.TestQuotaObject.test_quota_init magnum.tests.unit.api.controllers.v1.test_quota.TestQuotaObject.test_quota_init ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_all_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_all_stats ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_invalid_tenant_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_invalid_tenant_stats ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_tenant_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_tenant_stats ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey ... ok -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_empty -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_empty ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_invalid_type_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_invalid_type_stats ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -Exception ignored in: . at 0xffff83998220> -Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 729, in - _finalize_fairy( - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 1035, in _finalize_fairy - connection_record.checkin() - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 770, in checkin - pool.dispatch.checkin(connection, self) - File "/usr/lib/python3/dist-packages/sqlalchemy/event/attr.py", line 497, in __call__ - fn(*args, **kw) - File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 52, in _thread_yield - time.sleep(0) - File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 35, in sleep - raise RuntimeError('do not call blocking functions from the mainloop') -RuntimeError: do not call blocking functions from the mainloop -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats_without_param -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats_without_param ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -Exception ignored in: . at 0xffff830d85e0> -Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 729, in - _finalize_fairy( - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 1035, in _finalize_fairy - connection_record.checkin() - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 770, in checkin - pool.dispatch.checkin(connection, self) - File "/usr/lib/python3/dist-packages/sqlalchemy/event/attr.py", line 497, in __call__ - fn(*args, **kw) - File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 52, in _thread_yield - time.sleep(0) - File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 35, in sleep - raise RuntimeError('do not call blocking functions from the mainloop') -RuntimeError: do not call blocking functions from the mainloop -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_some_other_user_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_some_other_user_stats ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype -magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype_no_value -magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype_no_value ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr -magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr -magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_many +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_many ... ok magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_invalid_values magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_invalid_values ... ok magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_multitype_tostring magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_multitype_tostring ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_one +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_one ... ok magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_valid_values magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_valid_values ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_cluster_already_member +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_cluster_already_member ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype +magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype_no_value +magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype_no_value ... ok + +GET: /v1/federations/fake-name {} +GOT:{'uuid': 'c5fc3890-4ef4-49eb-9342-19813c6e5a6e', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/c5fc3890-4ef4-49eb-9342-19813c6e5a6e', 'rel': 'self'}, {'href': 'http://localhost/federations/c5fc3890-4ef4-49eb-9342-19813c6e5a6e', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:14:13.339628+00:00', 'updated_at': None} +GET: /v1/federations/test_federation {} +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple federations exist with same name", "detail": "Multiple federations exist with same name. Please use the federation uuid instead.", "links": []}]} +GET: /v1/federations/not_found {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation not_found could not be found", "detail": "Federation not_found could not be found.", "links": []}]} +GET: /v1/federations/7e4c4e15-e1ec-4be8-a7f0-4ce8f03b4465 {} +GOT:{'uuid': '7e4c4e15-e1ec-4be8-a7f0-4ce8f03b4465', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/7e4c4e15-e1ec-4be8-a7f0-4ce8f03b4465', 'rel': 'self'}, {'href': 'http://localhost/federations/7e4c4e15-e1ec-4be8-a7f0-4ce8f03b4465', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:14:13.495392+00:00', 'updated_at': None} +GET: /v1/federations/538526d3-66e4-4508-bee6-a813a97980ea {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation 538526d3-66e4-4508-bee6-a813a97980ea could not be found", "detail": "Federation 538526d3-66e4-4508-bee6-a813a97980ea could not be found.", "links": []}]} +GET: /v1/federations/7338321c-4636-4796-bf32-1c80047b99b6 {} +GOT:{'uuid': '7338321c-4636-4796-bf32-1c80047b99b6', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/7338321c-4636-4796-bf32-1c80047b99b6', 'rel': 'self'}, {'href': 'http://localhost/federations/7338321c-4636-4796-bf32-1c80047b99b6', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:14:13.655882+00:00', 'updated_at': None} +GET: /v1/federations/7338321c-4636-4796-bf32-1c80047b99b6 {} +GOT:{'uuid': '7338321c-4636-4796-bf32-1c80047b99b6', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/7338321c-4636-4796-bf32-1c80047b99b6', 'rel': 'self'}, {'href': 'http://localhost/federations/7338321c-4636-4796-bf32-1c80047b99b6', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:14:13.655882+00:00', 'updated_at': None} +GET: /federations/7338321c-4636-4796-bf32-1c80047b99b6 {} +GOT:{'uuid': '7338321c-4636-4796-bf32-1c80047b99b6', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/7338321c-4636-4796-bf32-1c80047b99b6', 'rel': 'self'}, {'href': 'http://localhost/federations/7338321c-4636-4796-bf32-1c80047b99b6', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:14:13.655882+00:00', 'updated_at': None} +GET: /v1/federations {} +GOT:{'federations': [{'uuid': '65893d57-9a1b-4256-ab09-369ea7a00626', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/65893d57-9a1b-4256-ab09-369ea7a00626', 'rel': 'self'}, {'href': 'http://localhost/federations/65893d57-9a1b-4256-ab09-369ea7a00626', 'rel': 'bookmark'}]}, {'uuid': 'ed409704-fe0f-4201-af58-7092d3f2e871', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/ed409704-fe0f-4201-af58-7092d3f2e871', 'rel': 'self'}, {'href': 'http://localhost/federations/ed409704-fe0f-4201-af58-7092d3f2e871', 'rel': 'bookmark'}]}, {'uuid': '62ede309-ff79-48df-adda-c74c4af87532', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/62ede309-ff79-48df-adda-c74c4af87532', 'rel': 'self'}, {'href': 'http://localhost/federations/62ede309-ff79-48df-adda-c74c4af87532', 'rel': 'bookmark'}]}, {'uuid': 'c545fc9b-57bf-4ead-b019-b55e25ed6dc8', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/c545fc9b-57bf-4ead-b019-b55e25ed6dc8', 'rel': 'self'}, {'href': 'http://localhost/federations/c545fc9b-57bf-4ead-b019-b55e25ed6dc8', 'rel': 'bookmark'}]}, {'uuid': '291cacd9-c3b1-484d-bca4-170cfbb814c6', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/291cacd9-c3b1-484d-bca4-170cfbb814c6', 'rel': 'self'}, {'href': 'http://localhost/federations/291cacd9-c3b1-484d-bca4-170cfbb814c6', 'rel': 'bookmark'}]}]} +GET: /v1/federations {} +GOT:{'federations': [{'uuid': 'ffc97afe-08c2-4f7e-9a67-571cfb1c1227', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/ffc97afe-08c2-4f7e-9a67-571cfb1c1227', 'rel': 'self'}, {'href': 'http://localhost/federations/ffc97afe-08c2-4f7e-9a67-571cfb1c1227', 'rel': 'bookmark'}]}]} +PATCH: /v1/federations/a286048d-c839-4e01-9542-49f04b0c305f [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "A cluster with UUID 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is already a member of the federation federation-example", "detail": "A cluster with UUID 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is already a member of the federation federation-example.", "links": []}]} +PATCH: /v1/federations/6951ee8d-94e1-4d7b-a5c8-d2edd28f2e86 [{'path': '/member_ids', 'value': 'e5a0d7d4-46f9-456c-94ac-9d961c3ad1f6', 'op': 'add'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster e5a0d7d4-46f9-456c-94ac-9d961c3ad1f6 could not be found", "detail": "Cluster e5a0d7d4-46f9-456c-94ac-9d961c3ad1f6 could not be found.", "links": []}]}magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_non_existent_cluster +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_non_existent_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name +magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name +magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_join +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_join ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid +magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid +magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_unjoin +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_unjoin ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_already_exist +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_already_exist ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_not_exist +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_not_exist ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_name +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_existent_cluster +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_existent_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_uuid +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_multi_exist +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_multi_exist ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_non_exist +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_non_exist ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_member_cluster +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_member_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_name +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_name ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_uuid +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ... ok magnum.tests.unit.api.test_app.TestAppConfig.test_get_pecan_config magnum.tests.unit.api.test_app.TestAppConfig.test_get_pecan_config ... ok magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_invalid_network @@ -8709,6 +7901,8 @@ magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_multiple_valid_network ... ok magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_valid_network magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_valid_network ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_generate_uuid +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_generate_uuid ... ok magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_invalid_network magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_invalid_network ... ok magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_multiple_valid_network @@ -8737,6 +7931,8 @@ magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_nonexist_image_by_id ... ok magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_nonexist_image_by_name magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_nonexist_image_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_hostcluster_does_not_exist +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_hostcluster_does_not_exist ... ok magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_valid_image_by_id magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_valid_image_by_id ... ok magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_valid_image_by_name @@ -8753,6 +7949,8 @@ magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_labels_main_no_label ... ok magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_cluster magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_dns_zone_name +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_dns_zone_name ... ok magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_invalid_fixed_subnet magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_invalid_fixed_subnet ... ok magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_invalid_flavor @@ -8761,10 +7959,167 @@ magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_valid_fixed_subnet ... ok magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_without_validator magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_without_validator ... ok -magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method -magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method ... ok -magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method_auth_info -magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method_auth_info ... ok +magnum.tests.unit.api.test_expose.TestExpose.test_expose_with_rest_content_types +magnum.tests.unit.api.test_expose.TestExpose.test_expose_with_rest_content_types ... ok +magnum.tests.unit.api.test_expose.TestExpose.test_expose_without_rest_content_types +magnum.tests.unit.api.test_expose.TestExpose.test_expose_without_rest_content_types ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_hostcluster_id +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_hostcluster_id ... ok +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ... ok +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_clientfault +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_clientfault ... ok + +PATCH: /v1/federations/670b6595-c668-42fd-804c-347335795df1 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "670b6595-c668-42fd-804c-347335795df1"} +GET: /v1/federations/670b6595-c668-42fd-804c-347335795df1 {} +GOT:{'uuid': '670b6595-c668-42fd-804c-347335795df1', 'name': 'federation-example', 'hostcluster_id': 'fake_master', 'member_ids': ['5d12f6fd-a196-4bf0-ae4c-1f639a523a52'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/670b6595-c668-42fd-804c-347335795df1', 'rel': 'self'}, {'href': 'http://localhost/federations/670b6595-c668-42fd-804c-347335795df1', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:14:14.255965+00:00', 'updated_at': '2026-01-22T07:14:14.300618+00:00'} +PATCH: /v1/federations/722c1d55-57d5-470a-9ac8-7cccd6c85464 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'remove'}] +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "722c1d55-57d5-470a-9ac8-7cccd6c85464"} +GET: /v1/federations/722c1d55-57d5-470a-9ac8-7cccd6c85464 {} +GOT:{'uuid': '722c1d55-57d5-470a-9ac8-7cccd6c85464', 'name': 'federation-example', 'hostcluster_id': 'fake_master', 'member_ids': [], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/722c1d55-57d5-470a-9ac8-7cccd6c85464', 'rel': 'self'}, {'href': 'http://localhost/federations/722c1d55-57d5-470a-9ac8-7cccd6c85464', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:14:14.404884+00:00', 'updated_at': '2026-01-22T07:14:14.431551+00:00'} +PATCH: /v1/federations/742fb417-8f56-4fde-8b16-e0d386fdab82 [{'path': '/member_ids', 'value': '5f3a4f4b-701c-4723-bd43-7cef61b6d820', 'op': 'remove'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 5f3a4f4b-701c-4723-bd43-7cef61b6d820 could not be found", "detail": "Cluster 5f3a4f4b-701c-4723-bd43-7cef61b6d820 could not be found.", "links": []}]} +PATCH: /v1/federations/51dc3e67-202b-4933-9d7e-c872a20b57be [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'remove'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is not a member of the federation federation-example", "detail": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is not a member of the federation federation-example.", "links": []}]} +POST: /v1/federations {'uuid': 'f260559b-7913-400a-9b91-727ac86b74a6', 'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "6dde80de-a870-4a9e-9653-80b962ed640e"} +POST: /v1/federations {'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "a3b1e82f-c373-444b-a23b-2c643b708283"} +POST: /v1/federations {'uuid': 'a79dda89-4a39-41a6-96b6-1434269d950c', 'name': 'fake-name', 'hostcluster_id': 'd5278e93-80e3-437d-a014-07f39bba1dc0', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster d5278e93-80e3-437d-a014-07f39bba1dc0 could not be found", "detail": "Cluster d5278e93-80e3-437d-a014-07f39bba1dc0 could not be found.", "links": []}]} +POST: /v1/federations {'uuid': '38a15321-b7ee-48ea-bdae-3fadaa023494', 'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Please specify a `properties` dict for the federation", "detail": "Please specify a `properties` dict for the federation.", "links": []}]} +POST: /v1/federations {'uuid': 'b258b8b6-79f2-4b83-b007-9639877a3858', 'name': 'fake-name', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "No hostcluster specified", "detail": "No hostcluster specified. Please specify a hostcluster_id.", "links": []}]} +POST: /v1/federations {'uuid': '1c66bde4-e0b1-4325-89b4-70de30f1a083', 'name': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'. Value should have a maximum character requirement of 242", "links": []}]} +POST: /v1/federations {'uuid': 'aecb9ad9-48fb-4748-933d-671211d186cf', 'name': '123456', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'}magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_serverfault +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_serverfault ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_with_invalid_name +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_with_invalid_name ... ok +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_without_name +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_without_name ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_not_supported +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_not_supported ... ok +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceObject.test_msvc_obj_fields_filtering +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceObject.test_msvc_obj_fields_filtering ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_supported +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_supported ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_config_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_config_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_invalid_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_invalid_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_invalid_coe_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_invalid_coe_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_invalid +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_invalid ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_bm +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_bm ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_by_name_not_found +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_by_name_not_found ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_vm +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_vm ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_invalid_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_invalid_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_add_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_add_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_replace_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_replace_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_remove_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_remove_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_add_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_add_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_replace_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_replace_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_valid_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_valid_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_validate_cluster_properties +magnum.tests.unit.api.test_validation.TestValidation.test_validate_cluster_properties ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_default_nodegroup +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_default_nodegroup ... ok magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_http magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_http ... ok magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_http_config_workers @@ -8773,203 +8128,255 @@ magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https ... ok magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_cert magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_cert ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup ... ok magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_key magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_key ... ok -magnum.tests.unit.cmd.test_status.TestUpgradeChecks.test_checks -magnum.tests.unit.cmd.test_status.TestUpgradeChecks.test_checks ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert_none_values -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert_none_values ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_delete_cert -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_delete_cert ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert_no_registration -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert_no_registration ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert_failure -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert_failure ... ok -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_barbican_cert_manager -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_barbican_cert_manager ... ok -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_local_cert_manager -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_local_cert_manager ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalCert.test_local_cert -magnum.tests.unit.common.cert_manager.test_local.TestLocalCert.test_local_cert ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_with_fail -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_with_fail ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_intermediate -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_intermediate ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_pkp -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_pkp ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_cert_fail -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_cert_fail ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_intermediates_fail -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_intermediates_fail ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_pkp_fail -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_pkp_fail ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_private_key_fail -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_private_key_fail ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_intermediate -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_intermediate ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_pkp -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_pkp ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert_with_io_error -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert_with_io_error ... ok -magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairCert.test_x509keypair_cert -magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairCert.test_x509keypair_cert ... ok -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_create_no_permission -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_create_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_delete_no_permission -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_delete_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_all_no_permission -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_all_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_update_no_permission -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_update_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_create_no_permission -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_create_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_delete_no_permission -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_delete_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_all_no_permission -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_all_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_detail_no_permission -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_detail_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_as_admin +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_as_admin ... ok -GET: /v1/quotas/fake_project/Cluster {} -GOT:Response: 200 OK +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"hard_limit": 20, "project_id": "fake_project", "resource": "Cluster"} -GET: /v1/quotas {} -GOT:{'quotas': []} -GET: /v1/quotas?all_tenants=True {} -GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'proj-id-0', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.020005+00:00', 'updated_at': None}, {'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.022016+00:00', 'updated_at': None}, {'id': 3, 'hard_limit': 10, 'project_id': 'proj-id-2', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.023774+00:00', 'updated_at': None}, {'id': 4, 'hard_limit': 10, 'project_id': 'proj-id-3', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.025425+00:00', 'updated_at': None}]} -GET: /v1/quotas?all_tenants=False {} -GOT:{'quotas': [{'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.063190+00:00', 'updated_at': None}]} -GET: /v1/quotas?limit=3&marker=3&all_tenants=True {} -GOT:{'quotas': [{'id': 4, 'hard_limit': 10, 'project_id': 'proj-id-3', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.093849+00:00', 'updated_at': None}]} -GET: /v1/quotas {} -GOT:{'quotas': [{'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.118536+00:00', 'updated_at': None}]} -GET: /v1/quotas {} -GOT:{'quotas': [{'id': 3, 'hard_limit': 10, 'project_id': 'proj-id-2', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.141301+00:00', 'updated_at': None}]} -GET: /v1/quotas?all_tenants=True {} -GOT:{'quotas': []} -GET: /v1/quotas?limit=2&all_tenants=True {} -GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'proj-id-0', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.186577+00:00', 'updated_at': None}, {'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.187673+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/quotas?sort_key=id&sort_dir=asc&limit=2&marker=2'} -GET: /v1/quotas/fake_project/Cluster {} -GOT:{'id': 1, 'hard_limit': 10, 'project_id': 'fake_project', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.206819+00:00', 'updated_at': None} -GET: /v1/quotas/fake_project/Cluster {} -GOT:Response: 200 OK +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '123456'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} +POST: /v1/federations {'uuid': 'aaf5af0c-c0c0-4561-8fbe-97e9aa52f3f9', 'name': '123456test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"hard_limit": 20, "project_id": "fake_project", "resource": "Cluster"} -GET: /v1/quotas/invalid_proj/invalid_res {} -GOT:Response: 403 Forbidden +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '123456test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} +POST: /v1/federations {'uuid': 'faeb2f68-f68b-4eb7-a6ec-53908c98fbac', 'name': '-test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Not authorized", "detail": "Not authorized.", "links": []}]} -GET: /v1/quotas/fake_project/Cluster {} -GOT:Response: 200 OK +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '-test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} +POST: /v1/federations {'uuid': 'b66f488e-d25a-48e6-b9ee-7fc85088c733', 'name': '.test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"hard_limit": 15, "project_id": "fake_project", "resource": "Cluster"} -GET: /v1/quotas {} -GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'fake_project', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:23.271938+00:00', 'updated_at': None}]} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 5} -GOT:Response: 201 Created +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '.test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} +POST: /v1/federations {'uuid': '250a3e0f-1bb4-4fef-ad28-648e602c0ec8', 'name': '_test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 5, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:23.295989+00:00", "updated_at": null} -PATCH: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 20} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '_test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} +POST: /v1/federations {'uuid': '94768e35-8f23-4b86-9a27-fef8cc950c5e', 'name': '', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 20, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:23.295989+00:00", "updated_at": "2026-01-22T07:06:23.302785+00:00"} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} -GOT:Response: 201 Created +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: ''. Value should have a minimum character requirement of 1", "links": []}]} +POST: /v1/federations {'uuid': '15ee68cc-3fa0-4381-8cec-d91a6622d541', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:23.320403+00:00", "updated_at": null} -PATCH: /v1/quotas {'project_id': 'not-found', 'hard_limit': 20, 'resource': 'Cluster'} +{"uuid": "fa8ef25c-e40d-40c2-bca0-a4fca20f84b6"} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/not-there GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Quota could not be found: project_id not-found resource Cluster", "detail": "Quota could not be found: project_id not-found resource Cluster.", "links": []}]} -GET: /v1/stats {} -GOT:{'clusters': 2, 'nodes': 12} -GET: /v1/stats?project_id=34 {} -GOT:{'clusters': 0, 'nodes': 0} -GET: /v1/stats?project_id=234 {} -GOT:{'clusters': 1, 'nodes': 6} -GET: /v1/stats {} -GOT:{'clusters': 0, 'nodes': 0} -GET: /v1/stats?project_id=123&type=invalid {} -GET: /v1/stats {} -GOT:{'clusters': 1, 'nodes': 6} -GET: /v1/stats {} -GOT:{'clusters': 1, 'nodes': 6} -GET: /v1/stats?project_id=123 {} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 -GET: /v1/clusters {} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -PATCH: /v1/clusters/cluster_example_A [{'path': '/node_count', 'value': 4, 'op': 'replace'}] -POST: /v1/clustertemplates {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'clustermodel1', 'image_id': 'ubuntu', 'flavor_id': 'm1.small', 'master_flavor_id': 'm1.small', 'keypair_id': 'keypair1', 'external_network_id': 'd1f02cfb-d27f-4068-9332-84d907cb0e2e', 'fixed_network': 'private', 'fixed_subnet': 'private-subnet', 'network_driver': None, 'volume_driver': None, 'dns_nameserver': '8.8.1.1', 'apiserver_port': 8080, 'docker_volume_size': 20, 'docker_storage_driver': 'devicemapper', 'cluster_distro': 'fedora-coreos', 'coe': 'kubernetes', 'labels': {'key1': 'val1', 'key2': 'val2'}, 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'registry_enabled': False, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'hidden': False, 'tags': '', 'driver': ''} -DELETE: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 -GET: /v1/clustertemplates {} -GET: /v1/clustertemplates/detail {} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/dns_nameserver', 'op': 'remove'}]magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_update_no_permission +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup not-there could not be found", "detail": "Nodegroup not-there could not be found.", "links": []}]} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/1ba1a1b9-7eb9-4d8a-85ac-8c9f76468602 +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Deleting a default nodegroup is not supported", "detail": "Deleting a default nodegroup is not supported.", "links": []}]} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 +GOT:Response: 204 No Content +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version + +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup 483203a3-dbee-4a9c-9d65-9820512f4df8 could not be found", "detail": "Nodegroup 483203a3-dbee-4a9c-9d65-9820512f4df8 could not be found.", "links": []}]} +DELETE: /v1/clusters/b6862b6b-4a0e-4cb8-a1b4-12cd11b25e41/nodegroups/d2376688-a702-46e6-862c-8310a8fe2903 +GOT:Response: 204 No Content +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version + +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 +GOT:Response: 204 No Content +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version + +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup nodegroup1 could not be found", "detail": "Nodegroup nodegroup1 could not be found.", "links": []}]}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_by_name +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_by_name ... ok +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_with_details_and_path +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_with_details_and_path ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_not_found +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_not_found ... ok +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_without_details_and_path +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_without_details_and_path ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_wrong_microversion +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_wrong_microversion ... ok +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_none_arg +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_none_arg ... ok +magnum.tests.unit.cmd.test_status.TestUpgradeChecks.test_checks +magnum.tests.unit.cmd.test_status.TestUpgradeChecks.test_checks ... ok +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCert.test_get_decrypted_private_key +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCert.test_get_decrypted_private_key ... ok +magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairCert.test_x509keypair_cert +magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairCert.test_x509keypair_cert ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all ... ok +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_create_no_permission +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_create_no_permission ... ok +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_get_no_permission ... ok +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_update_no_permission +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_update_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_as_admin +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_as_admin ... ok +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_create_no_permission +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_create_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name ... ok +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_delete_no_permission +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_delete_no_permission ... ok +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_all_no_permission +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_all_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name_non_default_ngs +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name_non_default_ngs ... ok +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_non_existent_role +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_non_existent_role ... ok +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_update_no_permission +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_update_no_permission ... ok +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_create_no_permission +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_create_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_role +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_role ... ok +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_delete_no_permission +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_delete_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_non_existent_cluster +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_non_existent_cluster ... ok +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_all_no_permission +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_all_no_permission ... ok +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_detail_no_permission +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_detail_no_permission ... ok +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_with_pagination_marker ... ok +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_update_no_permission magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_update_no_permission ... ok -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_create_no_permission -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_create_no_permission ... ok -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_delete_no_permission -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_delete_no_permission ... ok -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_all_no_permission -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_all_no_permission ... ok -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_no_permission ... ok -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_update_no_permission -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_update_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_wrong_microversion +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_wrong_microversion ... ok +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_create_no_permission +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_create_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one ... ok +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_delete_no_permission +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_delete_no_permission ... ok + +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/0c7b9820-ec7f-40ca-ba9b-7ba45f1df689 +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup 0c7b9820-ec7f-40ca-ba9b-7ba45f1df689 could not be found", "detail": "Nodegroup 0c7b9820-ec7f-40ca-ba9b-7ba45f1df689 could not be found.", "links": []}]} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 +GOT:Response: 406 Not Acceptable +Content-Type: application/json +{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} +GET: /v1/clusters/c2b863ed-fc37-4a5d-b269-f2937132af50/nodegroups {} +GOT:{'nodegroups': [{'uuid': '1a89139a-7442-4523-9f28-e4cee7696414', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '7193583b-bc79-4c59-aa77-31c675f977a2', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} +GET: /v1/clusters/790d75b4-8907-47a1-9444-5ee897d585a1/nodegroups {} +GOT:{'nodegroups': [{'uuid': '038d3790-8ef9-4d05-ba8b-78f36fc588e5', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '866d7bfd-03fe-4a3c-be3a-5aea894f77d5', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} +GET: /v1/clusters/cluster1/nodegroups {} +GOT:{'nodegroups': [{'uuid': '457b1bcb-fb15-457c-876f-b100e90d4150', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '1865cc44-9d14-48d0-a1b2-7922c51a3a94', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} +GET: /v1/clusters/cluster1/nodegroups {} +GOT:{'nodegroups': [{'uuid': 'ff39b8a5-cd92-4812-a105-294169899bd4', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '52632775-8b45-4721-9f9b-0233e069eccd', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} +GET: /v1/clusters/cluster1/nodegroups?role=non-existent {} +GOT:{'nodegroups': []} +GET: /v1/clusters/cluster1/nodegroups?role=master {} +GOT:{'nodegroups': [{'uuid': '0568831c-990b-4e71-aeea-f2264b250a78', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} +GET: /v1/clusters/cluster1/nodegroups?role=worker {} +GOT:{'nodegroups': [{'uuid': '0ffd61a0-adaf-4e33-bda2-9a30fb93389f', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} +GET: /v1/clusters/not-here/nodegroups {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not-here could not be found", "detail": "Cluster not-here could not be found.", "links": []}]} +GET: /v1/clusters/a7370543-5ad8-44fd-bfb0-52c06859ef05/nodegroups?limit=1 {} +GOT:{'nodegroups': [{'uuid': '2914c43d-3cf6-4cb6-854d-3989232e6997', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}], 'next': 'http://localhost/v1/clusters/a7370543-5ad8-44fd-bfb0-52c06859ef05/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=2914c43d-3cf6-4cb6-854d-3989232e6997'} +GET: /v1/clusters/a7370543-5ad8-44fd-bfb0-52c06859ef05/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=2914c43d-3cf6-4cb6-854d-3989232e6997 {} +GOT:{'nodegroups': [{'uuid': '9c9a61ee-2764-4893-8863-af2c590091da', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}], 'next': 'http://localhost/v1/clusters/a7370543-5ad8-44fd-bfb0-52c06859ef05/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=9c9a61ee-2764-4893-8863-af2c590091da'} +GET: /v1/clusters/a7370543-5ad8-44fd-bfb0-52c06859ef05/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=9c9a61ee-2764-4893-8863-af2c590091da {} +GOT:{'nodegroups': []} +GET: /v1/clusters/093082cf-37a5-46dd-91e1-eed10a0d352f/nodegroups/ {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} +GET: /v1/clusters/48ca458a-d65c-4047-9817-24afe668e31a/nodegroups/e66d91f9-5ab2-40e5-8007-963e49c80a2d {} +GOT:{'id': 1, 'uuid': 'e66d91f9-5ab2-40e5-8007-963e49c80a2d', 'name': 'test-worker', 'cluster_id': '48ca458a-d65c-4047-9817-24afe668e31a', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/48ca458a-d65c-4047-9817-24afe668e31a/nodegroups/e66d91f9-5ab2-40e5-8007-963e49c80a2d', 'rel': 'self'}, {'href': 'http://localhost/clusters/48ca458a-d65c-4047-9817-24afe668e31a/nodegroups/e66d91f9-5ab2-40e5-8007-963e49c80a2d', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': 'test_image', 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:14:16.567215+00:00', 'updated_at': None} +GET: /v1/clusters/7d23eddd-5089-4760-ae19-471fbab4e77c/nodegroups/7cbdf419-7c12-41a4-b59d-ab365cf4ac8c {}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_as_admin +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_as_admin ... ok +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_all_no_permission +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_all_no_permission ... ok +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default ... ok +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_update_no_permission +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_update_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default_skipped_labels +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default_skipped_labels ... ok magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_admin magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_admin ... ok magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_no_permission magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_existent_ng +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_existent_ng ... ok magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_reader magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_reader ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_barbican @@ -8990,10 +8397,14 @@ magnum.tests.unit.common.test_clients.ClientsTest.test_clients_glance_region ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_heat magnum.tests.unit.common.test_clients.ClientsTest.test_clients_heat ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_wrong_microversion +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_wrong_microversion ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_heat_cached magnum.tests.unit.common.test_clients.ClientsTest.test_clients_heat_cached ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_heat_noauth magnum.tests.unit.common.test_clients.ClientsTest.test_clients_heat_noauth ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodegroupObject.test_nodegroup_init +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodegroupObject.test_nodegroup_init ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_heat_region magnum.tests.unit.common.test_clients.ClientsTest.test_clients_heat_region ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_neutron @@ -9006,8 +8417,27 @@ magnum.tests.unit.common.test_clients.ClientsTest.test_clients_neutron_region ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_master_ng +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_master_ng ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_cluster_no_api_address +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_cluster_no_api_address ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_same_name +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_same_name ... ok +Exception ignored in: . at 0xffffacc13c40> +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 729, in + _finalize_fairy( + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 1035, in _finalize_fairy + connection_record.checkin() + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 770, in checkin + pool.dispatch.checkin(connection, self) + File "/usr/lib/python3/dist-packages/sqlalchemy/event/attr.py", line 497, in __call__ + fn(*args, **kw) + File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 52, in _thread_yield + time.sleep(0) + File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 35, in sleep + raise RuntimeError('do not call blocking functions from the mainloop') +RuntimeError: do not call blocking functions from the mainloop magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_cached magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_cached ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_noauth @@ -9018,6 +8448,580 @@ magnum.tests.unit.common.test_clients.ClientsTest.test_magnum_url ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_url_for magnum.tests.unit.common.test_clients.ClientsTest.test_url_for ... ok +magnum.tests.unit.common.test_exception.TestException.test_all_exceptions +magnum.tests.unit.common.test_exception.TestException.test_all_exceptions ... ok +magnum.tests.unit.common.test_exception.TestException.test_custom_message_is_templated +magnum.tests.unit.common.test_exception.TestException.test_custom_message_is_templated ... ok +magnum.tests.unit.common.test_exception.TestException.test_message_is_templated +magnum.tests.unit.common.test_exception.TestException.test_message_is_templated ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_labels +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_labels ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_empty +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_empty ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_exception +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_exception ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_conflict +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_conflict ... ok + +GOT:{'id': 3, 'uuid': '7cbdf419-7c12-41a4-b59d-ab365cf4ac8c', 'name': 'test-worker', 'cluster_id': '7d23eddd-5089-4760-ae19-471fbab4e77c', 'project_id': '7d23eddd-5089-4760-ae19-471fbab4e77c', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/7d23eddd-5089-4760-ae19-471fbab4e77c/nodegroups/7cbdf419-7c12-41a4-b59d-ab365cf4ac8c', 'rel': 'self'}, {'href': 'http://localhost/clusters/7d23eddd-5089-4760-ae19-471fbab4e77c/nodegroups/7cbdf419-7c12-41a4-b59d-ab365cf4ac8c', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': 'test_image', 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:14:16.655927+00:00', 'updated_at': None} +GET: /v1/clusters/ae764c36-69fc-4a79-a733-cc523ca08a69/nodegroups/non_default_ng {} +GOT:{'id': 3, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'cluster_id': 'ae764c36-69fc-4a79-a733-cc523ca08a69', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label2': 'value2', 'label4': 'value4'}, 'links': [{'href': 'http://localhost/v1/clusters/ae764c36-69fc-4a79-a733-cc523ca08a69/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/ae764c36-69fc-4a79-a733-cc523ca08a69/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:14:16.771882+00:00', 'updated_at': None} +GET: /v1/clusters/34bc94cb-f6f7-4c7f-a971-aae72e83b8f0/nodegroups/non_default_ng {} +GOT:{'id': 3, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'cluster_id': '34bc94cb-f6f7-4c7f-a971-aae72e83b8f0', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'links': [{'href': 'http://localhost/v1/clusters/34bc94cb-f6f7-4c7f-a971-aae72e83b8f0/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/34bc94cb-f6f7-4c7f-a971-aae72e83b8f0/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {'label2': 'value2'}, 'created_at': '2026-01-22T07:14:16.863411+00:00', 'updated_at': None} +GET: /v1/clusters/871b3e6b-6d6b-42b4-bb6e-4aa03a2bc73f/nodegroups/not-here {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup not-here could not be found", "detail": "Nodegroup not-here could not be found.", "links": []}]} +GET: /v1/clusters/b0f43b0a-accc-4930-9720-24876d411311/nodegroups/db46a954-363e-431f-8c9f-9de404ee9e8b {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'master', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Creating master nodegroups is currently not supported", "detail": "Creating master nodegroups is currently not supported.", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Cluster API address is not available yet", "detail": "Cluster API address is not available yet", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'test-master', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "A node group with name test-master already exists in the cluster cluster1", "detail": "A node group with name test-master already exists in the cluster cluster1.", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label3': 'value3'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "6c5e8e71-7244-4396-b315-fe50afc23ac8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label3": "value3"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/6c5e8e71-7244-4396-b315-fe50afc23ac8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/6c5e8e71-7244-4396-b315-fe50afc23ac8", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {"label3": "value3"}, "labels_skipped": {"label1": "value1", "label2": "value2"}, "created_at": "2026-01-22T07:14:18.160504+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': True}magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_notfound +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_notfound ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name_notfound +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name_notfound ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels_no_labels +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels_no_labels ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_conflict +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_conflict ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_wrong_microversion +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_wrong_microversion ... ok +Exception ignored in: . at 0xffffac99b060> +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 729, in + _finalize_fairy( + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 1035, in _finalize_fairy + connection_record.checkin() + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 770, in checkin + pool.dispatch.checkin(connection, self) + File "/usr/lib/python3/dist-packages/sqlalchemy/event/attr.py", line 497, in __call__ + fn(*args, **kw) + File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 52, in _thread_yield + time.sleep(0) + File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 35, in sleep +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_notfound +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_notfound ... ok + raise RuntimeError('do not call blocking functions from the mainloop') +RuntimeError: do not call blocking functions from the mainloop +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup ... ok +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_already_deleted +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_already_deleted ... ok +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_no_candidate +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_no_candidate ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_invalid_node_count +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_invalid_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_only_name +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_only_name ... ok + +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "454e6803-63ca-40d1-b543-74d3b01e2e69", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value3", "label2": "value2", "label4": "value4"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/454e6803-63ca-40d1-b543-74d3b01e2e69", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/454e6803-63ca-40d1-b543-74d3b01e2e69", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {"label1": "value1"}, "labels_added": {"label4": "value4"}, "labels_skipped": {}, "created_at": "2026-01-22T07:14:18.323814+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': True} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "34d81ce9-e0ae-46e0-8145-0056eb2b872d", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value1", "label2": "value2"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/34d81ce9-e0ae-46e0-8145-0056eb2b872d", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/34d81ce9-e0ae-46e0-8145-0056eb2b872d", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:14:18.559938+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'new_ng', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "d1da48c2-e1fd-4751-bc68-2ba50f18d3e7", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/d1da48c2-e1fd-4751-bc68-2ba50f18d3e7", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/d1da48c2-e1fd-4751-bc68-2ba50f18d3e7", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 7, 'role': 'worker', 'max_node_count': 5, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "max_node_count for nodegroup1 is invalid (node_count (7) should be less or equal to max_node_count (5))", "detail": "max_node_count for nodegroup1 is invalid (node_count (7) should be less or equal to max_node_count (5)).", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 2, 'role': 'worker', 'max_node_count': None, 'min_node_count': 3, 'merge_labels': False} +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2))", "detail": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2)).", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'name': 'test_ng'} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 3, "uuid": "eaeeb032-28ee-44a2-b70e-3e1d13a7710a", "name": "test_ng", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/eaeeb032-28ee-44a2-b70e-3e1d13a7710a", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/eaeeb032-28ee-44a2-b70e-3e1d13a7710a", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 1, "role": "worker", "min_node_count": 0, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': 'test_flavor', 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "beffab17-378a-4598-9ff6-09a4d2ecc36d", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/beffab17-378a-4598-9ff6-09a4d2ecc36d", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/beffab17-378a-4598-9ff6-09a4d2ecc36d", "rel": "bookmark"}], "flavor_id": "test_flavor", "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_flavor +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_flavor ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_image_id +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_image_id ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_labels +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_labels ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_max_node_count +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_max_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_role +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_role ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_zero_nodes +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_zero_nodes ... ok +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout ... ok +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_with_stack_not_found +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_with_stack_not_found ... ok +magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_admin_context_succeeds +magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_admin_context_succeeds ... ok +magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_user_context_fails +magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_user_context_fails ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_deserialize_context +magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_deserialize_context ... ok +Exception ignored in: . at 0xfffface5e5c0> +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 729, in + _finalize_fairy( + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 1035, in _finalize_fairy + connection_record.checkin() + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 770, in checkin + pool.dispatch.checkin(connection, self) + File "/usr/lib/python3/dist-packages/sqlalchemy/event/attr.py", line 497, in __call__ + fn(*args, **kw) + File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 52, in _thread_yield + time.sleep(0) + File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 35, in sleep + raise RuntimeError('do not call blocking functions from the mainloop') +RuntimeError: do not call blocking functions from the mainloop +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_serialize_context +magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_serialize_context ... ok + +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "b0514a6a-7827-4117-8af6-4e2549836964", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/b0514a6a-7827-4117-8af6-4e2549836964", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/b0514a6a-7827-4117-8af6-4e2549836964", "rel": "bookmark"}], "flavor_id": null, "image_id": "test_image", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label1': 'value1'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "cfc600f9-c3d8-4006-9cb7-76c690f28197", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value1"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/cfc600f9-c3d8-4006-9cb7-76c690f28197", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/cfc600f9-c3d8-4006-9cb7-76c690f28197", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {"label1": "value1"}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': 5, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "bdb29234-e246-4056-b9a0-5c8bae4b648d", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/bdb29234-e246-4056-b9a0-5c8bae4b648d", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/bdb29234-e246-4056-b9a0-5c8bae4b648d", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": 5, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'test-role', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "75788c66-2a47-4af5-9656-0b3e5b6a379d", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/75788c66-2a47-4af5-9656-0b3e5b6a379d", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/75788c66-2a47-4af5-9656-0b3e5b6a379d", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "test-role", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 0, 'role': 'worker', 'max_node_count': None, 'min_node_count': 0, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "b184642c-9648-4c20-b46c-6dd49ef096bd", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/b184642c-9648-4c20-b46c-6dd49ef096bd", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/b184642c-9648-4c20-b46c-6dd49ef096bd", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 0, "role": "worker", "min_node_count": 0, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "eeb60343-dc87-4cdc-a628-7eef0ffeeb00", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/eeb60343-dc87-4cdc-a628-7eef0ffeeb00", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/eeb60343-dc87-4cdc-a628-7eef0ffeeb00", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 1, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_without_node_count +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_without_node_count ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.test_rpc.TestRpc.test_add_extra_exmods +magnum.tests.unit.common.test_rpc.TestRpc.test_add_extra_exmods ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup +magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup ... ok +magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_notifier_null +magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_notifier_null ... ok +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_all_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_all_stats ... ok +magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_transport_null +magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_transport_null ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.test_rpc.TestRpc.test_clear_extra_exmods +magnum.tests.unit.common.test_rpc.TestRpc.test_clear_extra_exmods ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.test_rpc.TestRpc.test_get_client +magnum.tests.unit.common.test_rpc.TestRpc.test_get_client ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.test_rpc.TestRpc.test_get_client_profiler_enabled +magnum.tests.unit.common.test_rpc.TestRpc.test_get_client_profiler_enabled ... ok +magnum.tests.unit.common.test_rpc.TestRpc.test_get_server +magnum.tests.unit.common.test_rpc.TestRpc.test_get_server ... ok +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_invalid_tenant_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_invalid_tenant_stats ... ok +magnum.tests.unit.common.test_rpc.TestRpc.test_get_server_profiler_enabled +magnum.tests.unit.common.test_rpc.TestRpc.test_get_server_profiler_enabled ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url +magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url_null +magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url_null ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.test_rpc.TestRpc.test_serialize_entity +magnum.tests.unit.common.test_rpc.TestRpc.test_serialize_entity ... ok +magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_none +magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_none ... ok +magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_not_none +magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_not_none ... ok +magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_12 +magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_12 ... ok +magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_16 +magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_16 ... ok +magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_60 +magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_60 ... ok +magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_8 +magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_8 ... ok +magnum.tests.unit.common.test_short_id.ShortIdTest.test_generate_ids +magnum.tests.unit.common.test_short_id.ShortIdTest.test_generate_ids ... ok +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_string +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_string ... ok +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid1 +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid1 ... ok +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_0 +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_0 ... ok +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_1 +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_1 ... ok +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_endianness +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_endianness ... ok +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_f +magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_f ... ok +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get ... ok +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_exceed_manifest_size +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_exceed_manifest_size ... ok +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_unsupported_scheme +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_unsupported_scheme ... ok +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_tenant_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_tenant_stats ... ok +magnum.tests.unit.common.test_utils.GeneratePasswordTestCase.test_generate_password +magnum.tests.unit.common.test_utils.GeneratePasswordTestCase.test_generate_password ... ok +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_empty +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_empty ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_invalid_type_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_invalid_type_stats ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +Exception ignored in: . at 0xfffface5fce0> +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 729, in + _finalize_fairy( + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 1035, in _finalize_fairy + connection_record.checkin() + File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 770, in checkin + pool.dispatch.checkin(connection, self) + File "/usr/lib/python3/dist-packages/sqlalchemy/event/attr.py", line 497, in __call__ + fn(*args, **kw) + File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 52, in _thread_yield + time.sleep(0) + File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 35, in sleep + raise RuntimeError('do not call blocking functions from the mainloop') +RuntimeError: do not call blocking functions from the mainloop +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats_without_param +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats_without_param ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_some_other_user_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_some_other_user_stats ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_frombasetype_no_value +magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_frombasetype_no_value ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value +magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values +magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values +magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_invalid_single_dns +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_invalid_single_dns ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_multi_dns +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_multi_dns ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_single_dns +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_single_dns ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_internal_attr +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_internal_attr ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_has_publickey +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_has_publickey ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_internal_attr +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_internal_attr ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_update_mandatory_attr +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_update_mandatory_attr ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches +magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype +magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype_no_value +magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype_no_value ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr +magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr +magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr ... ok +magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method +magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method ... ok +magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method_auth_info +magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method_auth_info ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_all_three +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_all_three ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_created +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_created ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_latest_update +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_latest_update ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_updated +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_updated ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_check_type +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_check_type ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_all_three +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_all_three ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_create +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_create ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_old_update +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_old_update ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_update +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_update ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_forced_down +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_forced_down ... ok +magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor +magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor ... ok +magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor_config_workers +magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor_config_workers ... ok +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_revision +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_revision ... ok +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_stamp +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_stamp ... ok +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_upgrade +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_upgrade ... ok +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_version +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_version ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert_none_values +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert_none_values ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_delete_cert +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_delete_cert ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert_no_registration +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert_no_registration ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert_failure +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert_failure ... ok +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_barbican_cert_manager +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_barbican_cert_manager ... ok +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_local_cert_manager +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_local_cert_manager ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalCert.test_local_cert +magnum.tests.unit.common.cert_manager.test_local.TestLocalCert.test_local_cert ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_with_fail +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_with_fail ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_intermediate +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_intermediate ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_pkp +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_pkp ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_cert_fail +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_cert_fail ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_intermediates_fail +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_intermediates_fail ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_pkp_fail +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_pkp_fail ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_private_key_fail +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_private_key_fail ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_intermediate +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_intermediate ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_pkp +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_pkp ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert_with_io_error +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert_with_io_error ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'fake-uuid'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_delete_cert +magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_delete_cert ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'fake-uuid'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_get_cert +magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_get_cert ... ok +magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_store_cert +magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_store_cert ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_create_no_permission +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_create_no_permission ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_delete_no_permission +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_delete_no_permission ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_detail_list_no_permission +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_detail_list_no_permission ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_no_permission ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_extentions_as_ca +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_extentions_as_ca ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_reader +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_reader ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_update_no_permission +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_update_no_permission ... ok +magnum.tests.unit.common.policies.test_magnum_service_policy.TestMagnumServicePolicy.test_get_all_no_permission +magnum.tests.unit.common.policies.test_magnum_service_policy.TestMagnumServicePolicy.test_get_all_no_permission ... ok +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_create_no_permission +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_create_no_permission ... ok +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_delete_no_permission +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_delete_no_permission ... ok +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_all_no_permission +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_all_no_permission ... ok +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_no_permission ... ok +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_update_no_permission +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_update_no_permission ... ok magnum.tests.unit.common.test_context.ContextTestCase.test_context magnum.tests.unit.common.test_context.ContextTestCase.test_context ... ok magnum.tests.unit.common.test_context.ContextTestCase.test_context_with_roles @@ -9054,10 +9058,12 @@ magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_get_validate_region_name_not_found ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_trustee_domain_id magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_trustee_domain_id ... ok -magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_admin_context_succeeds -magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_admin_context_succeeds ... ok -magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_user_context_fails -magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_user_context_fails ... ok +magnum.tests.unit.common.test_profiler.TestProfiler.test_all_public_methods_are_traced +magnum.tests.unit.common.test_profiler.TestProfiler.test_all_public_methods_are_traced ... ok +magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler +magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler ... ok +magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler_without_osprofiler +magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler_without_osprofiler ... ok magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... ok magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity @@ -9082,8 +9088,12 @@ magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables ... ok magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_issuer_name +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_issuer_name ... ok magnum.tests.unit.common.test_utils.ExecuteTestCase.test_no_retry_on_success magnum.tests.unit.common.test_utils.ExecuteTestCase.test_no_retry_on_success ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_subject_name +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_subject_name ... ok magnum.tests.unit.common.test_utils.ExecuteTestCase.test_retry_on_failure magnum.tests.unit.common.test_utils.ExecuteTestCase.test_retry_on_failure ... ok magnum.tests.unit.common.test_utils.ExecuteTestCase.test_safe_rstrip @@ -9096,80 +9106,22 @@ magnum.tests.unit.common.test_utils.ExecuteTestCase.test_validate_and_normalize_mac ... ok magnum.tests.unit.common.test_utils.ExecuteTestCase.test_validate_and_normalize_mac_invalid_format magnum.tests.unit.common.test_utils.ExecuteTestCase.test_validate_and_normalize_mac_invalid_format ... ok -magnum.tests.unit.common.test_utils.GeneratePasswordTestCase.test_generate_password -magnum.tests.unit.common.test_utils.GeneratePasswordTestCase.test_generate_password ... ok +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... ok +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... ok +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ... ok +magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_k8s_quantity +magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_k8s_quantity ... ok +magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_openstasck_ca +magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_openstasck_ca ... ok magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_decrypt_key magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_decrypt_key ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_with_bytes_issuer_name +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_with_bytes_issuer_name ... ok magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_generate_csr_and_key magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_generate_csr_and_key ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_not_critical -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_not_critical ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_with_non_ca -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_with_non_ca ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed_but_not_critical -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed_but_not_critical ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed_but_not_critical -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed_but_not_critical ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_cert_sign -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_cert_sign ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_crl_sign -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_crl_sign ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_without_ca_usage -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_without_ca_usage ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_in_cache -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_in_cache ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_notin_cache -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_notin_cache ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_set_file_permissions -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_set_file_permissions ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_temp_no_dir -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_temp_no_dir ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_if_raise_error -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_if_raise_error ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_without_cert_ref -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_without_cert_ref ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files_none -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files_none ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_ca_cert -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_ca_cert ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_with_error -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_with_error ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_without_name -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_without_name ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_client_cert -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_client_cert ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate_ca_cert_type -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate_ca_cert_type ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_magnum_cert -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_magnum_cert ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate_without_cluster_name -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate_without_cluster_name ... ok magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_create_trustee_and_trust magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_create_trustee_and_trust ... ok magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_create_trustee_and_trust_with_error @@ -9184,70 +9136,72 @@ magnum.tests.unit.conductor.handlers.test_ca_conductor.TestSignConductor.test_get_ca_certificate ... ok magnum.tests.unit.conductor.handlers.test_ca_conductor.TestSignConductor.test_sign_certificate magnum.tests.unit.conductor.handlers.test_ca_conductor.TestSignConductor.test_sign_certificate ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_conflict -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_conflict ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_with_lb -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_with_lb ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_failure -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_failure ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_success -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_success ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_handles_bad_request -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_handles_bad_request ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_cert_failed -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_cert_failed ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_environment -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_environment ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_invalid_unicode_name -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_invalid_unicode_name ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_trust_failed -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_trust_failed ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_adopt_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_adopt_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_check_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_check_complete ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_restore_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_restore_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_resume_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_resume_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_rollback_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_rollback_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_snapshot_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_snapshot_complete ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_bytes_private_key -magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_bytes_private_key ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_update_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_update_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_failure -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_failure ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_success -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_success ... ok magnum.tests.unit.conductor.handlers.test_conductor_listener.TestHandler.test_ping_conductor magnum.tests.unit.conductor.handlers.test_conductor_listener.TestHandler.test_ping_conductor ... ok -magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_create_federation -magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_create_federation ... ok -magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_delete_federation -magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_delete_federation ... ok -magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_update_federation -magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_update_federation ... ok -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack ... ok -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack_with_error -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack_with_error ... ok -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack ... ok -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack_with_error -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack_with_error ... ok -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack ... ok -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack_with_error -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack_with_error ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_no_timeout_specified +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_no_timeout_specified ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_timeout_is_zero +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_timeout_is_zero ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_no_discoveryurl +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_no_discoveryurl ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_with_discovery +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_with_discovery ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_only_required +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_only_required ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_with_registry +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_with_registry ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_apiserver_port +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_apiserver_port ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_discovery_url +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_discovery_url ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_dns +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_dns ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_docker_storage_driver +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_docker_storage_driver ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_server_image +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_server_image ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_update_stack +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_update_stack ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed_bad_request +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed_bad_request ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_failed +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_failed ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_and_ng_not_found +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_and_ng_not_found ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_not_found +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_not_found ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_operation_ongoing +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_operation_ongoing ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_udpate +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_udpate ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed_bad_request +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed_bad_request ... ok +magnum.tests.unit.conductor.test_scale_manager.TestK8sScaleManager.test_get_hosts_with_container +magnum.tests.unit.conductor.test_scale_manager.TestK8sScaleManager.test_get_hosts_with_container ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_no_container_host +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_no_container_host ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_one_container_host +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_one_container_host ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_scale_up +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_scale_up ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_three_container_hosts +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_three_container_hosts ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_two_container_hosts +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_two_container_hosts ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_with_none_hosts +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_with_none_hosts ... ok magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_context magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_context ... ok magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domain_project_id @@ -9264,8 +9218,6 @@ magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_userid_projectid ... ok magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_complete_status magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_complete_status ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_unicode_private_key -magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_unicode_private_key ... ok magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_in_progress magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_in_progress ... ok magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_invalid_status @@ -9280,14 +9232,52 @@ magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid_from_name ... ok magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid_from_uuid magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid_from_uuid ... ok -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ... ok -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value ... ok -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster_already_exists +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster_already_exists ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster_nullable_cluster_template_id +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster_nullable_cluster_template_id ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_id_that_does_not_exist +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_id_that_does_not_exist ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_uuid +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_uuid ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_uuid_that_does_not_exist +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_uuid_that_does_not_exist ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_all_cluster_stats +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_all_cluster_stats ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_id +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_id ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_name +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_name ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_name_multiple_cluster +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_name_multiple_cluster ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_uuid +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_uuid ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_by_admin_all_tenants +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_by_admin_all_tenants ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_cluster_template_not_exist +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_cluster_template_not_exist ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_sorted +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_sorted ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_with_filters +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_with_filters ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_that_does_not_exist +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_that_does_not_exist ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_one_tenant_cluster_stats +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_one_tenant_cluster_stats ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster_not_found +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster_not_found ... ok +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster_uuid +magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster_uuid ... ok magnum.tests.unit.db.test_cluster_template.DbClusterTemplateTestCase.test_create_cluster_template magnum.tests.unit.db.test_cluster_template.DbClusterTemplateTestCase.test_create_cluster_template ... ok magnum.tests.unit.db.test_cluster_template.DbClusterTemplateTestCase.test_create_cluster_template_already_exists @@ -9340,8 +9330,6 @@ magnum.tests.unit.db.test_cluster_template.DbClusterTemplateTestCase.test_update_cluster_template_uuid ... ok magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_empty_chars -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_empty_chars ... ok magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation_already_exists magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation_already_exists ... ok magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation @@ -9362,8 +9350,6 @@ magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_uuid ... ok magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_invalid_csr -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_invalid_csr ... ok magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_by_admin_all_tenants magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_by_admin_all_tenants ... ok magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_sorted @@ -9382,6 +9368,467 @@ magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_not_found ... ok magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_properties magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_properties ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_already_exists +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_already_exists ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_same_name_different_cluster +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_same_name_different_cluster ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_same_name_same_cluster +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_same_name_same_cluster ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_cluster_by_uuid_that_does_not_exist +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_cluster_by_uuid_that_does_not_exist ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_nodegroup +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_nodegroup ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_nodegroup_by_uuid +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_nodegroup_by_uuid ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_cluster_by_uuid +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_cluster_by_uuid ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_cluster_list_sorted +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_cluster_list_sorted ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_by_id +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_by_id ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_by_name +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_by_name ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_list_with_filters +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_list_with_filters ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_that_does_not_exist +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_that_does_not_exist ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroups_in_cluster +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroups_in_cluster ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_update_cluster +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_update_cluster ... ok +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_update_nodegroup_not_found +magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_update_nodegroup_not_found ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_create +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_create ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_destroy +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_destroy ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_bad_id_and_uuid +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_bad_id_and_uuid ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_id +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_id ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_name +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_name ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_uuid +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_uuid ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_list +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_list ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_refresh +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_refresh ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_save +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_save ... ok +magnum.tests.unit.objects.test_federation.TestFederationObject.test_create +magnum.tests.unit.objects.test_federation.TestFederationObject.test_create ... ok +magnum.tests.unit.objects.test_federation.TestFederationObject.test_destroy +magnum.tests.unit.objects.test_federation.TestFederationObject.test_destroy ... ok +magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_bad_id_and_uuid +magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_bad_id_and_uuid ... ok +magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_id +magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_id ... ok +magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_name +magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_name ... ok +magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_uuid +magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_uuid ... ok +magnum.tests.unit.objects.test_federation.TestFederationObject.test_list +magnum.tests.unit.objects.test_federation.TestFederationObject.test_list ... ok +magnum.tests.unit.objects.test_federation.TestFederationObject.test_list_all +magnum.tests.unit.objects.test_federation.TestFederationObject.test_list_all ... ok +magnum.tests.unit.objects.test_federation.TestFederationObject.test_list_with_filters +magnum.tests.unit.objects.test_federation.TestFederationObject.test_list_with_filters ... ok +magnum.tests.unit.objects.test_federation.TestFederationObject.test_refresh +magnum.tests.unit.objects.test_federation.TestFederationObject.test_refresh ... ok +magnum.tests.unit.objects.test_federation.TestFederationObject.test_save +magnum.tests.unit.objects.test_federation.TestFederationObject.test_save ... ok +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_coerce_bad_values +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_coerce_bad_values ... ok +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_coerce_good_values +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_coerce_good_values ... ok +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_from_primitive +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_from_primitive ... ok +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_stringify +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_stringify ... ok +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_stringify_invalid +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_stringify_invalid ... ok +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_to_primitive +magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_to_primitive ... ok +magnum.tests.unit.objects.test_fields.TestClusterType.test_coerce_bad_values +magnum.tests.unit.objects.test_fields.TestClusterType.test_coerce_bad_values ... ok +magnum.tests.unit.objects.test_fields.TestClusterType.test_coerce_good_values +magnum.tests.unit.objects.test_fields.TestClusterType.test_coerce_good_values ... ok +magnum.tests.unit.objects.test_fields.TestClusterType.test_from_primitive +magnum.tests.unit.objects.test_fields.TestClusterType.test_from_primitive ... ok +magnum.tests.unit.objects.test_fields.TestClusterType.test_stringify +magnum.tests.unit.objects.test_fields.TestClusterType.test_stringify ... ok +magnum.tests.unit.objects.test_fields.TestClusterType.test_stringify_invalid +magnum.tests.unit.objects.test_fields.TestClusterType.test_stringify_invalid ... ok +magnum.tests.unit.objects.test_fields.TestClusterType.test_to_primitive +magnum.tests.unit.objects.test_fields.TestClusterType.test_to_primitive ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_bad_values +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_bad_values ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_good_values +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_good_values ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_from_primitive +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_from_primitive ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify_invalid +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify_invalid ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_to_primitive +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_to_primitive ... ok +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_create +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_create ... ok +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_destroy +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_destroy ... ok +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_get_by_host_and_binary +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_get_by_host_and_binary ... ok +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_get_by_host_and_binary_no_service +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_get_by_host_and_binary_no_service ... ok +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_report_state_up +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_report_state_up ... ok +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_save +magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_save ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_base_attributes +magnum.tests.unit.objects.test_objects.TestObject.test_base_attributes ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_changed_1 +magnum.tests.unit.objects.test_objects.TestObject.test_changed_1 ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_changed_2 +magnum.tests.unit.objects.test_objects.TestObject.test_changed_2 ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_changed_3 +magnum.tests.unit.objects.test_objects.TestObject.test_changed_3 ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_changed_4 +magnum.tests.unit.objects.test_objects.TestObject.test_changed_4 ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive +magnum.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_contains +magnum.tests.unit.objects.test_objects.TestObject.test_contains ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_dehydration +magnum.tests.unit.objects.test_objects.TestObject.test_dehydration ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_get +magnum.tests.unit.objects.test_objects.TestObject.test_get ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_get_changes +magnum.tests.unit.objects.test_objects.TestObject.test_get_changes ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_get_updates +magnum.tests.unit.objects.test_objects.TestObject.test_get_updates ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_hydration +magnum.tests.unit.objects.test_objects.TestObject.test_hydration ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns +magnum.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_hydration_type_error +magnum.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_load +magnum.tests.unit.objects.test_objects.TestObject.test_load ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_load_in_base +magnum.tests.unit.objects.test_objects.TestObject.test_load_in_base ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive +magnum.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set +magnum.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_obj_constructor +magnum.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_obj_fields +magnum.tests.unit.objects.test_objects.TestObject.test_obj_fields ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_object_inheritance +magnum.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_object_property +magnum.tests.unit.objects.test_objects.TestObject.test_object_property ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_object_property_type_error +magnum.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_orphaned_object +magnum.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_static_result +magnum.tests.unit.objects.test_objects.TestObject.test_static_result ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_unknown_objtype +magnum.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_updates +magnum.tests.unit.objects.test_objects.TestObject.test_updates ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_with_alternate_context +magnum.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... ok +magnum.tests.unit.objects.test_objects.TestObjectVersions.test_versions +magnum.tests.unit.objects.test_objects.TestObjectVersions.test_versions ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_health_status +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_health_status ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_changes +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_changes ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_heat_not_found +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_heat_not_found ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_not_changes +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_not_changes ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_non_trusts_error +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_non_trusts_error ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_trusts_not_found +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_trusts_not_found ... ok +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_firsttime +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_firsttime ... ok +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_on_restart +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_on_restart ... ok +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_regular +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_regular ... ok +magnum.tests.unit.template.test_template.TestTemplate.test_template_yaml +magnum.tests.unit.template.test_template.TestTemplate.test_template_yaml ... ok + +GET: /v1/stats {} +GOT:{'clusters': 2, 'nodes': 12} +GET: /v1/stats?project_id=34 {} +GOT:{'clusters': 0, 'nodes': 0} +GET: /v1/stats?project_id=234 {} +GOT:{'clusters': 1, 'nodes': 6} +GET: /v1/stats {} +GOT:{'clusters': 0, 'nodes': 0} +GET: /v1/stats?project_id=123&type=invalid {} +GET: /v1/stats {} +GOT:{'clusters': 1, 'nodes': 6} +GET: /v1/stats {} +GOT:{'clusters': 1, 'nodes': 6} +GET: /v1/stats?project_id=123 {} +POST: /v1/federations {} +DELETE: /v1/federations/a4ea9011-6221-47e1-9509-0a312d719b17 +GET: /v1/federations/detail {} +GET: /v1/federations {} +GET: /v1/federations {} +GOT:{'federations': [{'uuid': 'd9f81b3e-8b3c-466c-90bd-11eb1c39ccb8', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/d9f81b3e-8b3c-466c-90bd-11eb1c39ccb8', 'rel': 'self'}, {'href': 'http://localhost/federations/d9f81b3e-8b3c-466c-90bd-11eb1c39ccb8', 'rel': 'bookmark'}]}]} +PATCH: /v1/federations/cd2c4642-e8c6-453b-90f8-87cfd7340532 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] +GET: /v1/mservices {} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} +GOT:Response: 201 Created +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:14:22.744860+00:00", "updated_at": null} +DELETE: /v1/quotas/fake_project/Cluster +GET: /v1/quotas {} +GET: /v1/quotas/fake_project/Cluster {} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 5} +GOT:Response: 201 Created +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"id": 42, "hard_limit": 5, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:14:22.857559+00:00", "updated_at": null} +PATCH: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 20} +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_bytes_private_key +magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_bytes_private_key ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_unicode_private_key +magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_unicode_private_key ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_empty_chars +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_empty_chars ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_invalid_csr +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_invalid_csr ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_unicode_csr +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_unicode_csr ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_not_critical +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_not_critical ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_with_non_ca +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_with_non_ca ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed_but_not_critical +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed_but_not_critical ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed_but_not_critical +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed_but_not_critical ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_cert_sign +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_cert_sign ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_crl_sign +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_crl_sign ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_without_ca_usage +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_without_ca_usage ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_in_cache +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_in_cache ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_notin_cache +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_notin_cache ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_set_file_permissions +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_set_file_permissions ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_temp_no_dir +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_temp_no_dir ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_if_raise_error +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_if_raise_error ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_without_cert_ref +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_without_cert_ref ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files_none +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files_none ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_ca_cert +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_ca_cert ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_with_error +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_with_error ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_without_name +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_without_name ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_client_cert +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_client_cert ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate_ca_cert_type +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate_ca_cert_type ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_magnum_cert +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_magnum_cert ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate_without_cluster_name +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate_without_cluster_name ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_conflict +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_conflict ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_with_lb +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_with_lb ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_failure +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_failure ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_success +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_success ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_handles_bad_request +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_handles_bad_request ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_cert_failed +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_cert_failed ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_environment +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_environment ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_invalid_unicode_name +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_invalid_unicode_name ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_trust_failed +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_trust_failed ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_adopt_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_adopt_complete ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_check_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_check_complete ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_restore_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_restore_complete ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_resume_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_resume_complete ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_rollback_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_rollback_complete ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_snapshot_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_snapshot_complete ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_update_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_update_complete ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_failure +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_failure ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_success +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_success ... ok +magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_create_federation +magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_create_federation ... ok +magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_delete_federation +magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_delete_federation ... ok +magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_update_federation +magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_update_federation ... ok +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action ... ok +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_copies_object +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_copies_object ... ok +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_on_raise +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_on_raise ... ok +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action ... ok +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action_on_raise +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action_on_raise ... ok +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack ... ok +DEBUG [taskflow.engines.action_engine.completer] Applying resolver 'RevertAll(strategy=REVERT_ALL)' to resolve failure 'Failure: ValueError: ' of atom '"magnum.conductor.tasks.heat_tasks.CreateStack==1.0"' +DEBUG [taskflow.engines.action_engine.completer] Modified/tweaked 1 nodes while applying resolver 'RevertAll(strategy=REVERT_ALL)' +DEBUG [taskflow.engines.action_engine.builder] Discarding failure 'Failure: ValueError: ' (in response to outcome 'executed') under completion units request during completion of atom '"magnum.conductor.tasks.heat_tasks.CreateStack==1.0"' (intention is to REVERT) +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack_with_error +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack_with_error ... ok +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack ... ok +DEBUG [taskflow.engines.action_engine.completer] Applying resolver 'RevertAll(strategy=REVERT_ALL)' to resolve failure 'Failure: ValueError: ' of atom '"magnum.conductor.tasks.heat_tasks.DeleteStack==1.0"' +DEBUG [taskflow.engines.action_engine.completer] Modified/tweaked 1 nodes while applying resolver 'RevertAll(strategy=REVERT_ALL)' +DEBUG [taskflow.engines.action_engine.builder] Discarding failure 'Failure: ValueError: ' (in response to outcome 'executed') under completion units request during completion of atom '"magnum.conductor.tasks.heat_tasks.DeleteStack==1.0"' (intention is to REVERT) +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack_with_error +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack_with_error ... ok +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack ... ok +DEBUG [taskflow.engines.action_engine.completer] Applying resolver 'RevertAll(strategy=REVERT_ALL)' to resolve failure 'Failure: ValueError: ' of atom '"magnum.conductor.tasks.heat_tasks.UpdateStack==1.0"' +DEBUG [taskflow.engines.action_engine.completer] Modified/tweaked 1 nodes while applying resolver 'RevertAll(strategy=REVERT_ALL)' +DEBUG [taskflow.engines.action_engine.builder] Discarding failure 'Failure: ValueError: ' (in response to outcome 'executed') under completion units request during completion of atom '"magnum.conductor.tasks.heat_tasks.UpdateStack==1.0"' (intention is to REVERT) +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack_with_error +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack_with_error ... ok +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_is_magnum_auto_healer_running +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_is_magnum_auto_healer_running ... ok +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_compute_cpu_util +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_compute_cpu_util ... ok +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_compute_memory_util +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_compute_memory_util ... ok +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_get_metric_names +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_get_metric_names ... ok +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_get_metric_unit +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_get_metric_unit ... ok +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_healthy +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_healthy ... ok +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unhealthy_api +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unhealthy_api ... ok +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unhealthy_node +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unhealthy_node ... ok +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unreachable_cluster +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unreachable_cluster ... ok +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unreachable_with_master_lb +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unreachable_with_master_lb ... ok +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_pull_data_success +magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_pull_data_success ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_create +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_create ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_delete +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_delete ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_update +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_update ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_ca_certificate +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_ca_certificate ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_create +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_create ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_delete +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_delete ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_update +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_update ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_ping_conductor +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_ping_conductor ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_sign_certificate +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_sign_certificate ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_append_config +magnum.tests.unit.conf.test_conf.ConfTestCase.test_append_config ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_no_func +magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_no_func ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_valid_func +magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_valid_func ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_invalid_mods +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_invalid_mods ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_valid_mods +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_valid_mods ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_opts +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_opts ... ok +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ... ok +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value ... ok +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ... ok magnum.tests.unit.db.test_magnum_service.DbMagnumServiceTestCase.test_create_magnum_service magnum.tests.unit.db.test_magnum_service.DbMagnumServiceTestCase.test_create_magnum_service ... ok magnum.tests.unit.db.test_magnum_service.DbMagnumServiceTestCase.test_create_magnum_service_failure_for_dup @@ -9462,416 +9909,56 @@ magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_delete_failed_def_ng ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleted magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleted ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_unicode_csr -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_unicode_csr ... ok -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action ... ok -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_copies_object -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_copies_object ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleting magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleting ... ok -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_on_raise -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_on_raise ... ok -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action ... ok -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action_on_raise -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action_on_raise ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_failed_default_ng magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_failed_default_ng ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_new_ngs magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_new_ngs ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_no_timeout_specified -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_no_timeout_specified ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_timeout_is_zero -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_timeout_is_zero ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_ngs_failed_and_updating magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_ngs_failed_and_updating ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_create_failed magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_create_failed ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_no_discoveryurl -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_no_discoveryurl ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_created magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_created ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_creating magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_creating ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_with_discovery -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_with_discovery ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_delete_failed magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_delete_failed ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_only_required -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_only_required ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleted magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleted ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleting magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleting ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_complete magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_complete ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_with_registry -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_with_registry ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_failed magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_failed ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_apiserver_port -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_apiserver_port ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_update_failed magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_update_failed ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_discovery_url -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_discovery_url ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_updated magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_updated ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_dns -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_dns ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_def_ng magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_def_ng ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_docker_storage_driver -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_docker_storage_driver ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_default_ng magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_default_ng ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_server_image -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_server_image ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_complete magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_complete ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_update_stack -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_update_stack ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_failed magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_failed ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed_bad_request -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed_bad_request ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_failed -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_failed ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_and_ng_not_found -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_and_ng_not_found ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_not_found -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_not_found ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_operation_ongoing -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_operation_ongoing ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_udpate -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_udpate ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_updating magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_updating ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed_bad_request -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed_bad_request ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_creating magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_creating ... ok -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_is_magnum_auto_healer_running -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_is_magnum_auto_healer_running ... ok -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_compute_cpu_util -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_compute_cpu_util ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_deleting magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_deleting ... ok -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_compute_memory_util -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_compute_memory_util ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_creating magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_creating ... ok -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_get_metric_names -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_get_metric_names ... ok -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_get_metric_unit -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_get_metric_unit ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_deleting magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_deleting ... ok -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_healthy -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_healthy ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_updating magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_updating ... ok -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unhealthy_api -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unhealthy_api ... ok -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unhealthy_node -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unhealthy_node ... ok magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_updating magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_updating ... ok -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_coerce_bad_values -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_coerce_bad_values ... ok -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_coerce_good_values -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_coerce_good_values ... ok -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unreachable_cluster -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unreachable_cluster ... ok -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_from_primitive -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_from_primitive ... ok -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_stringify -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_stringify ... ok -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_stringify_invalid -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_stringify_invalid ... ok -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_to_primitive -magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_to_primitive ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_bad_values -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_bad_values ... ok -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unreachable_with_master_lb -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unreachable_with_master_lb ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_good_values -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_good_values ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_from_primitive -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_from_primitive ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify_invalid -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify_invalid ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_to_primitive -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_to_primitive ... ok -magnum.tests.unit.objects.test_fields.TestClusterType.test_coerce_bad_values -magnum.tests.unit.objects.test_fields.TestClusterType.test_coerce_bad_values ... ok -magnum.tests.unit.objects.test_fields.TestClusterType.test_coerce_good_values -magnum.tests.unit.objects.test_fields.TestClusterType.test_coerce_good_values ... ok -magnum.tests.unit.objects.test_fields.TestClusterType.test_from_primitive -magnum.tests.unit.objects.test_fields.TestClusterType.test_from_primitive ... ok -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_pull_data_success -magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_pull_data_success ... ok -magnum.tests.unit.objects.test_fields.TestClusterType.test_stringify -magnum.tests.unit.objects.test_fields.TestClusterType.test_stringify ... ok -magnum.tests.unit.objects.test_fields.TestClusterType.test_stringify_invalid -magnum.tests.unit.objects.test_fields.TestClusterType.test_stringify_invalid ... ok -magnum.tests.unit.objects.test_fields.TestClusterType.test_to_primitive -magnum.tests.unit.objects.test_fields.TestClusterType.test_to_primitive ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_bad_values -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_bad_values ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_good_values -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_good_values ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_from_primitive -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_from_primitive ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_create -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_create ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify_invalid -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify_invalid ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_to_primitive -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_to_primitive ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_bad_values -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_bad_values ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_good_values -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_good_values ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_from_primitive -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_from_primitive ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify_invalid -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify_invalid ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_to_primitive -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_to_primitive ... ok -magnum.tests.unit.objects.test_fields.TestServerType.test_coerce_bad_values -magnum.tests.unit.objects.test_fields.TestServerType.test_coerce_bad_values ... ok -magnum.tests.unit.objects.test_fields.TestServerType.test_coerce_good_values -magnum.tests.unit.objects.test_fields.TestServerType.test_coerce_good_values ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_delete -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_delete ... ok -magnum.tests.unit.objects.test_fields.TestServerType.test_from_primitive -magnum.tests.unit.objects.test_fields.TestServerType.test_from_primitive ... ok -magnum.tests.unit.objects.test_fields.TestServerType.test_stringify -magnum.tests.unit.objects.test_fields.TestServerType.test_stringify ... ok -magnum.tests.unit.objects.test_fields.TestServerType.test_stringify_invalid -magnum.tests.unit.objects.test_fields.TestServerType.test_stringify_invalid ... ok -magnum.tests.unit.objects.test_fields.TestServerType.test_to_primitive -magnum.tests.unit.objects.test_fields.TestServerType.test_to_primitive ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_update -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_update ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_health_status -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_health_status ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_ca_certificate -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_ca_certificate ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_create -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_create ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_changes -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_changes ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_delete -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_delete ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_update -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_update ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_heat_not_found -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_heat_not_found ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_ping_conductor -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_ping_conductor ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_not_changes -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_not_changes ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_sign_certificate -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_sign_certificate ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_non_trusts_error -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_non_trusts_error ... ok -magnum.tests.unit.conductor.test_scale_manager.TestK8sScaleManager.test_get_hosts_with_container -magnum.tests.unit.conductor.test_scale_manager.TestK8sScaleManager.test_get_hosts_with_container ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_trusts_not_found -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_trusts_not_found ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_no_container_host -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_no_container_host ... ok -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_firsttime -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_firsttime ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_one_container_host -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_one_container_host ... ok -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_on_restart -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_on_restart ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_scale_up -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_scale_up ... ok -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_regular -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_regular ... ok -magnum.tests.unit.template.test_template.TestTemplate.test_template_yaml -magnum.tests.unit.template.test_template.TestTemplate.test_template_yaml ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_three_container_hosts -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_three_container_hosts ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_two_container_hosts -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_two_container_hosts ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_with_none_hosts -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_with_none_hosts ... ok - -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} -GOT:Response: 201 Created -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:24.237383+00:00", "updated_at": null} -DELETE: /v1/quotas/fake_project/Cluster -GET: /v1/quotas {} -GET: /v1/quotas/fake_project/Cluster {} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 5} -GOT:Response: 201 Created -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 5, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:24.320544+00:00", "updated_at": null} -PATCH: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 20} -GET: /v1/stats {} -GOT:{'clusters': 0, 'nodes': 0} -GET: /v1/stats {} -GET: /v1/stats {} -GOT:{'clusters': 0, 'nodes': 0} -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_equal_in -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_equal_in ... ok -stdin:1:1: M302 assertEqual(A is not None) sentences not allowed. -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_is_not_none -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_is_not_none ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_append_config -magnum.tests.unit.conf.test_conf.ConfTestCase.test_append_config ... ok -stdin:1:1: M316 assertTrue(isinstance(a, b)) sentences not allowed -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_true_isinstance -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_true_isinstance ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_no_func -magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_no_func ... ok -magnum.tests.unit.test_hacking.HackingTestCase.test_check_explicit_underscore_import -magnum.tests.unit.test_hacking.HackingTestCase.test_check_explicit_underscore_import ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_valid_func -magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_valid_func ... ok -magnum.tests.unit.test_hacking.HackingTestCase.test_dict_constructor_with_list_copy -magnum.tests.unit.test_hacking.HackingTestCase.test_dict_constructor_with_list_copy ... ok -stdin:1:1: M352 LOG.warn is deprecated, please use LOG.warning! -magnum.tests.unit.test_hacking.HackingTestCase.test_no_log_warn -magnum.tests.unit.test_hacking.HackingTestCase.test_no_log_warn ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_invalid_mods -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_invalid_mods ... ok -stdin:1:1: M322 Method's default argument shouldn't be mutable! -magnum.tests.unit.test_hacking.HackingTestCase.test_no_mutable_default_args -magnum.tests.unit.test_hacking.HackingTestCase.test_no_mutable_default_args ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_valid_mods -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_valid_mods ... ok -stdin:1:1: M339 Do not use xrange(). -magnum.tests.unit.test_hacking.HackingTestCase.test_no_xrange -magnum.tests.unit.test_hacking.HackingTestCase.test_no_xrange ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_opts -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_opts ... ok -stdin:1:1: M310 timeutils.utcnow() must be used instead of datetime.now() -stdin:1:1: M310 timeutils.utcnow() must be used instead of datetime.utcnow() -magnum.tests.unit.test_hacking.HackingTestCase.test_use_timeunitls_utcow -magnum.tests.unit.test_hacking.HackingTestCase.test_use_timeunitls_utcow ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster_already_exists -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster_already_exists ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster_nullable_cluster_template_id -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster_nullable_cluster_template_id ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_id_that_does_not_exist -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_id_that_does_not_exist ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_uuid -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_uuid ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_uuid_that_does_not_exist -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_destroy_cluster_by_uuid_that_does_not_exist ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_all_cluster_stats -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_all_cluster_stats ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_id -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_id ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_name -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_name ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_name_multiple_cluster -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_name_multiple_cluster ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_uuid -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_uuid ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_by_admin_all_tenants -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_by_admin_all_tenants ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_cluster_template_not_exist -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_cluster_template_not_exist ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_sorted -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_sorted ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_with_filters -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_with_filters ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_that_does_not_exist -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_that_does_not_exist ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_one_tenant_cluster_stats -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_one_tenant_cluster_stats ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster_not_found -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster_not_found ... ok -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster_uuid -magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_update_cluster_uuid ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_already_exists -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_already_exists ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_same_name_different_cluster -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_same_name_different_cluster ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_same_name_same_cluster -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_create_nodegroup_same_name_same_cluster ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_cluster_by_uuid_that_does_not_exist -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_cluster_by_uuid_that_does_not_exist ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_nodegroup -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_nodegroup ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_nodegroup_by_uuid -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_destroy_nodegroup_by_uuid ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_cluster_by_uuid -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_cluster_by_uuid ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_cluster_list_sorted -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_cluster_list_sorted ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_by_id -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_by_id ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_by_name -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_by_name ... ok -Exception ignored in: -Traceback (most recent call last): - File "/usr/lib/python3.13/threading.py", line 1383, in __del__ -TypeError: 'NoneType' object does not support the context manager protocol -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_list_with_filters -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_list_with_filters ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_that_does_not_exist -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroup_that_does_not_exist ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroups_in_cluster -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_get_nodegroups_in_cluster ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_update_cluster -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_update_cluster ... ok -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_update_nodegroup_not_found -magnum.tests.unit.db.test_nodegroup.DbNodeGroupTestCase.test_update_nodegroup_not_found ... ok magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url ... ok magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url_fail @@ -9970,73 +10057,42 @@ magnum.tests.unit.objects.test_cluster.TestClusterObject.test_refresh ... ok magnum.tests.unit.objects.test_cluster.TestClusterObject.test_save magnum.tests.unit.objects.test_cluster.TestClusterObject.test_save ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_create -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_create ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_destroy -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_destroy ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_bad_id_and_uuid -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_bad_id_and_uuid ... ok -Exception ignored in: . at 0xffff90f4ba60> -Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 729, in - _finalize_fairy( - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 1035, in _finalize_fairy - connection_record.checkin() - File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 770, in checkin - pool.dispatch.checkin(connection, self) - File "/usr/lib/python3/dist-packages/sqlalchemy/event/attr.py", line 497, in __call__ - fn(*args, **kw) - File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 52, in _thread_yield - time.sleep(0) - File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 35, in sleep - raise RuntimeError('do not call blocking functions from the mainloop') -RuntimeError: do not call blocking functions from the mainloop -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_id -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_id ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_name -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_name ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_uuid -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_uuid ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_list -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_list ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_refresh -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_refresh ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_save -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_save ... ok -magnum.tests.unit.objects.test_federation.TestFederationObject.test_create -magnum.tests.unit.objects.test_federation.TestFederationObject.test_create ... ok -magnum.tests.unit.objects.test_federation.TestFederationObject.test_destroy -magnum.tests.unit.objects.test_federation.TestFederationObject.test_destroy ... ok -magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_bad_id_and_uuid -magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_bad_id_and_uuid ... ok -magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_id -magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_id ... ok -magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_name -magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_name ... ok -magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_uuid -magnum.tests.unit.objects.test_federation.TestFederationObject.test_get_by_uuid ... ok -magnum.tests.unit.objects.test_federation.TestFederationObject.test_list -magnum.tests.unit.objects.test_federation.TestFederationObject.test_list ... ok -magnum.tests.unit.objects.test_federation.TestFederationObject.test_list_all -magnum.tests.unit.objects.test_federation.TestFederationObject.test_list_all ... ok -magnum.tests.unit.objects.test_federation.TestFederationObject.test_list_with_filters -magnum.tests.unit.objects.test_federation.TestFederationObject.test_list_with_filters ... ok -magnum.tests.unit.objects.test_federation.TestFederationObject.test_refresh -magnum.tests.unit.objects.test_federation.TestFederationObject.test_refresh ... ok -magnum.tests.unit.objects.test_federation.TestFederationObject.test_save -magnum.tests.unit.objects.test_federation.TestFederationObject.test_save ... ok -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_create -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_create ... ok -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_destroy -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_destroy ... ok -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_get_by_host_and_binary -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_get_by_host_and_binary ... ok -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_get_by_host_and_binary_no_service -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_get_by_host_and_binary_no_service ... ok -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_report_state_up -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_report_state_up ... ok -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_save -magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_save ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_bad_values +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_bad_values ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_good_values +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_good_values ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_from_primitive +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_from_primitive ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify_invalid +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify_invalid ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_to_primitive +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_to_primitive ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_bad_values +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_bad_values ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_good_values +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_good_values ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_from_primitive +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_from_primitive ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify_invalid +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify_invalid ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_to_primitive +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_to_primitive ... ok +magnum.tests.unit.objects.test_fields.TestServerType.test_coerce_bad_values +magnum.tests.unit.objects.test_fields.TestServerType.test_coerce_bad_values ... ok +magnum.tests.unit.objects.test_fields.TestServerType.test_coerce_good_values +magnum.tests.unit.objects.test_fields.TestServerType.test_coerce_good_values ... ok +magnum.tests.unit.objects.test_fields.TestServerType.test_from_primitive +magnum.tests.unit.objects.test_fields.TestServerType.test_from_primitive ... ok +magnum.tests.unit.objects.test_fields.TestServerType.test_stringify +magnum.tests.unit.objects.test_fields.TestServerType.test_stringify ... ok +magnum.tests.unit.objects.test_fields.TestServerType.test_stringify_invalid +magnum.tests.unit.objects.test_fields.TestServerType.test_stringify_invalid ... ok +magnum.tests.unit.objects.test_fields.TestServerType.test_to_primitive +magnum.tests.unit.objects.test_fields.TestServerType.test_to_primitive ... ok magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_create magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_create ... ok magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_destroy @@ -10055,62 +10111,6 @@ magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_refresh ... ok magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_save magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_save ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_base_attributes -magnum.tests.unit.objects.test_objects.TestObject.test_base_attributes ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_changed_1 -magnum.tests.unit.objects.test_objects.TestObject.test_changed_1 ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_changed_2 -magnum.tests.unit.objects.test_objects.TestObject.test_changed_2 ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_changed_3 -magnum.tests.unit.objects.test_objects.TestObject.test_changed_3 ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_changed_4 -magnum.tests.unit.objects.test_objects.TestObject.test_changed_4 ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive -magnum.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_contains -magnum.tests.unit.objects.test_objects.TestObject.test_contains ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_dehydration -magnum.tests.unit.objects.test_objects.TestObject.test_dehydration ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_get -magnum.tests.unit.objects.test_objects.TestObject.test_get ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_get_changes -magnum.tests.unit.objects.test_objects.TestObject.test_get_changes ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_get_updates -magnum.tests.unit.objects.test_objects.TestObject.test_get_updates ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_hydration -magnum.tests.unit.objects.test_objects.TestObject.test_hydration ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns -magnum.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_hydration_type_error -magnum.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_load -magnum.tests.unit.objects.test_objects.TestObject.test_load ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_load_in_base -magnum.tests.unit.objects.test_objects.TestObject.test_load_in_base ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive -magnum.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set -magnum.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_obj_constructor -magnum.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_obj_fields -magnum.tests.unit.objects.test_objects.TestObject.test_obj_fields ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_object_inheritance -magnum.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_object_property -magnum.tests.unit.objects.test_objects.TestObject.test_object_property ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_object_property_type_error -magnum.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_orphaned_object -magnum.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_static_result -magnum.tests.unit.objects.test_objects.TestObject.test_static_result ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_unknown_objtype -magnum.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_updates -magnum.tests.unit.objects.test_objects.TestObject.test_updates ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_with_alternate_context -magnum.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... ok magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport ... ok magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero @@ -10127,8 +10127,6 @@ magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization ... ok magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ... ok -magnum.tests.unit.objects.test_objects.TestObjectVersions.test_versions -magnum.tests.unit.objects.test_objects.TestObjectVersions.test_versions ... ok magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_create magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_create ... ok magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_destroy @@ -10148,36 +10146,48 @@ magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_save magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_save ... ok -GET: /v1/clusters/e9fae089-9167-492b-93bf-efae70062d46/nodegroups/non_default_ng {} -GOT:{'id': 3, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'cluster_id': 'e9fae089-9167-492b-93bf-efae70062d46', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'links': [{'href': 'http://localhost/v1/clusters/e9fae089-9167-492b-93bf-efae70062d46/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/e9fae089-9167-492b-93bf-efae70062d46/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {'label2': 'value2'}, 'created_at': '2026-01-22T07:06:18.389037+00:00', 'updated_at': None} -GET: /v1/clusters/69943a05-1152-444a-b3a2-0e9da032cb49/nodegroups/not-here {} -GOT:Response: 404 Not Found +GET: /v1/quotas/fake_project/Cluster {} +GOT:Response: 200 OK Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup not-here could not be found", "detail": "Nodegroup not-here could not be found.", "links": []}]} -GET: /v1/clusters/066a824b-6219-4f6a-b1ec-17dffd5f8558/nodegroups/f180611b-4aad-4df8-ac54-a8d13b2f1220 {} -GOT:Response: 406 Not Acceptable +{"hard_limit": 15, "project_id": "fake_project", "resource": "Cluster"} +GET: /v1/quotas {} +GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'fake_project', 'resource': 'Cluster', 'created_at': '2026-01-22T07:14:13.491499+00:00', 'updated_at': None}]} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 5} +GOT:Response: 201 Created Content-Type: application/json -{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} -GET: /v1/clusters/c79ee5ab-3e36-4b7d-8431-9d6f69370099/nodegroups {} -GOT:Response: 403 Forbidden +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"id": 42, "hard_limit": 5, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:14:13.558765+00:00", "updated_at": null} +PATCH: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 20} +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow nodegroup:get_all to be performed", "detail": "Policy doesn't allow nodegroup:get_all to be performed.", "links": []}]} -GET: /v1/clusters/8b444772-4a1c-488c-a638-71d2ea7d12ca/nodegroups/8670dfe3-d6de-45db-9556-7f41aa37372d {} -GOT:Response: 403 Forbidden +{"id": 42, "hard_limit": 20, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:14:13.558765+00:00", "updated_at": "2026-01-22T07:14:13.567163+00:00"} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} +GOT:Response: 201 Created Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow nodegroup:get to be performed", "detail": "Policy doesn't allow nodegroup:get to be performed.", "links": []}]} +{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:14:13.692707+00:00", "updated_at": null} +PATCH: /v1/quotas {'project_id': 'not-found', 'hard_limit': 20, 'resource': 'Cluster'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Quota could not be found: project_id not-found resource Cluster", "detail": "Quota could not be found: project_id not-found resource Cluster.", "links": []}]} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json @@ -10201,64 +10211,119 @@ POST: /v1/certificates {'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'csr': 'fake-csr'} GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} PATCH: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -POST: /v1/federations {} -DELETE: /v1/federations/372baf27-8d1c-4605-b39e-28588d03397c -GET: /v1/federations/detail {} -GET: /v1/federations {} -GET: /v1/federations {} -GOT:{'federations': [{'uuid': '07014ffe-d375-4a4a-9366-b7a48e1d052a', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/07014ffe-d375-4a4a-9366-b7a48e1d052a', 'rel': 'self'}, {'href': 'http://localhost/federations/07014ffe-d375-4a4a-9366-b7a48e1d052a', 'rel': 'bookmark'}]}]} -PATCH: /v1/federations/d0dc3cf1-4123-4e01-9181-ddabe1e69cb2 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] -GET: /v1/mservices {} -POST: /v1/clusters/ed4dd436-50f0-4b99-a01b-fe5213f21699/nodegroups/ {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -DELETE: /v1/clusters/6ac84c98-e1d0-428f-9f78-aae32961717f/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 -GET: /v1/clusters/060c3717-84b8-40cb-bbf5-ff1adeec39aa/nodegroups/ {} -GET: /v1/clusters/21056057-f091-4aea-a6b4-b24656afac26/nodegroups/foo {} -PATCH: /v1/clusters/0563b3d6-d9f6-41ca-8a7d-d802cfe531c2/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 +GET: /v1/clusters {} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +PATCH: /v1/clusters/cluster_example_A [{'path': '/node_count', 'value': 4, 'op': 'replace'}] +POST: /v1/clustertemplates {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'clustermodel1', 'image_id': 'ubuntu', 'flavor_id': 'm1.small', 'master_flavor_id': 'm1.small', 'keypair_id': 'keypair1', 'external_network_id': 'd1f02cfb-d27f-4068-9332-84d907cb0e2e', 'fixed_network': 'private', 'fixed_subnet': 'private-subnet', 'network_driver': None, 'volume_driver': None, 'dns_nameserver': '8.8.1.1', 'apiserver_port': 8080, 'docker_volume_size': 20, 'docker_storage_driver': 'devicemapper', 'cluster_distro': 'fedora-coreos', 'coe': 'kubernetes', 'labels': {'key1': 'val1', 'key2': 'val2'}, 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'registry_enabled': False, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'hidden': False, 'tags': '', 'driver': ''} +DELETE: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 +GET: /v1/clustertemplates {} +GET: /v1/clustertemplates/detail {} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/dns_nameserver', 'op': 'remove'}] +POST: /v1/clusters/6304a319-3431-4354-bcfd-80445f1e96e7/nodegroups/ {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +DELETE: /v1/clusters/a4cb0bfa-b7cb-4675-8c1d-b56e90fdf3fb/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 +GET: /v1/clusters/b321f4b9-840b-48c9-bce8-390429632277/nodegroups/ {} +GET: /v1/clusters/5d3a7857-3b4d-4f61-afb4-9e3c2657ea48/nodegroups/foo {} +PATCH: /v1/clusters/b309fe57-8d24-4ea3-998b-36e246e94906/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] +GET: /v1/stats {} +GOT:{'clusters': 0, 'nodes': 0} +GET: /v1/stats {} +GET: /v1/stats {} +GOT:{'clusters': 0, 'nodes': 0} +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_equal_in +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_equal_in ... ok +stdin:1:1: M302 assertEqual(A is not None) sentences not allowed. +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_is_not_none +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_is_not_none ... ok +stdin:1:1: M316 assertTrue(isinstance(a, b)) sentences not allowed +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_true_isinstance +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_true_isinstance ... ok +magnum.tests.unit.test_hacking.HackingTestCase.test_check_explicit_underscore_import +magnum.tests.unit.test_hacking.HackingTestCase.test_check_explicit_underscore_import ... ok +magnum.tests.unit.test_hacking.HackingTestCase.test_dict_constructor_with_list_copy +magnum.tests.unit.test_hacking.HackingTestCase.test_dict_constructor_with_list_copy ... ok +stdin:1:1: M352 LOG.warn is deprecated, please use LOG.warning! +magnum.tests.unit.test_hacking.HackingTestCase.test_no_log_warn +magnum.tests.unit.test_hacking.HackingTestCase.test_no_log_warn ... ok +stdin:1:1: M322 Method's default argument shouldn't be mutable! +magnum.tests.unit.test_hacking.HackingTestCase.test_no_mutable_default_args +magnum.tests.unit.test_hacking.HackingTestCase.test_no_mutable_default_args ... ok +stdin:1:1: M339 Do not use xrange(). +magnum.tests.unit.test_hacking.HackingTestCase.test_no_xrange +magnum.tests.unit.test_hacking.HackingTestCase.test_no_xrange ... ok +stdin:1:1: M310 timeutils.utcnow() must be used instead of datetime.now() +stdin:1:1: M310 timeutils.utcnow() must be used instead of datetime.utcnow() +magnum.tests.unit.test_hacking.HackingTestCase.test_use_timeunitls_utcow +magnum.tests.unit.test_hacking.HackingTestCase.test_use_timeunitls_utcow ... ok +Exception ignored in: +Traceback (most recent call last): + File "/usr/lib/python3.13/threading.py", line 1383, in __del__ +TypeError: 'NoneType' object does not support the context manager protocol ---------------------------------------------------------------------- -Ran 1164 tests in 25.208s +Ran 1164 tests in 51.174s OK + stestr slowest Test id Runtime (s) ---------------------------------------------------------------------------------------------------------- ----------- -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout 1.011 -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client 0.990 -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name 0.924 -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name 0.797 -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_unicode_csr 0.648 -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_empty_chars 0.496 -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey 0.490 -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_subject_name 0.389 -magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_bytes_private_key 0.370 -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_extentions_as_ca 0.340 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey 1.372 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name 1.339 +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_retry_on_failure 1.280 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name 1.204 +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout 1.043 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_has_publickey 0.992 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client 0.981 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_subject_name 0.945 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_issuer_name 0.830 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_with_bytes_issuer_name 0.788 + rm -rf .stestr -+ [ 3.12 = disabled ] -+ echo 3.12 -+ cut -d. -f1 ++ for pyvers in ${PYTHON3S} ++ '[' 3.12 = disabled ']' +++ cut -d. -f1 +++ echo 3.12 + PYMAJOR=3 -+ echo ===> Testing with python (python3) ++ echo '===> Testing with python (python3)' ===> Testing with python (python3) -+ pwd -+ [ -d /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages ] -+ [ -z /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages ] -+ [ -e .stestr.conf ] -+ [ -x /usr/bin/python3-stestr ] +++ pwd ++ '[' -d /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages ']' ++ '[' -z /build/reproducible-path/magnum-19.0.0/debian/tmp/usr/lib/python3/dist-packages ']' ++ '[' -e .stestr.conf ']' ++ '[' -x /usr/bin/python3-stestr ']' + STESTR=stestr + rm -rf .stestr -+ + subunit2pyunitPYTHON=python3.12 - stestr run --parallel --subunit --concurrency 2 magnum\.tests\.unit\.(?!(drivers\.test_heat_driver\.TestHeatPoller\.test_poll_done|drivers\.test_heat_driver\.TestHeatPoller\.test_poll_destroy|api\.controllers\.v1\.test_baymodel\.TestPatch|api\.controllers\.v1\.test_baymodel\.TestPost|api\.controllers\.v1\.test_cluster_template\.TestPost|api\.controllers\.v1\.test_cluster_template\.TestListClusterTemplate|api\.controllers\.v1\.test_cluster_template\.TestPatch\.test_update_cluster_template_with_cluster_not_allow_update|api\.controllers\.v1\.test_federation\.TestListFederation\.test_collection_links|api\.controllers\.v1\.test_federation\.TestPost\.test_create_federation_with_valid_name)) ++ subunit2pyunit ++ PYTHON=python3.12 ++ stestr run --parallel --subunit --concurrency 2 'magnum\.tests\.unit\.(?!(drivers\.test_heat_driver\.TestHeatPoller\.test_poll_done|drivers\.test_heat_driver\.TestHeatPoller\.test_poll_destroy|api\.controllers\.v1\.test_baymodel\.TestPatch|api\.controllers\.v1\.test_baymodel\.TestPost|api\.controllers\.v1\.test_cluster_template\.TestPost|api\.controllers\.v1\.test_cluster_template\.TestListClusterTemplate|api\.controllers\.v1\.test_cluster_template\.TestPatch\.test_update_cluster_template_with_cluster_not_allow_update|api\.controllers\.v1\.test_federation\.TestListFederation\.test_collection_links|api\.controllers\.v1\.test_federation\.TestPost\.test_create_federation_with_valid_name))' 3 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. 3 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. 3 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. -magnum.tests.unit.api.controllers.test_base.TestVersion.test__eq__with_equal -magnum.tests.unit.api.controllers.test_base.TestVersion.test__eq__with_equal ... ok -magnum.tests.unit.api.controllers.test_base.TestVersion.test__eq__with_unequal -magnum.tests.unit.api.controllers.test_base.TestVersion.test__eq__with_unequal ... ok magnum.tests.unit.api.controllers.test_base.TestController.test_api_version_decorator magnum.tests.unit.api.controllers.test_base.TestController.test_api_version_decorator ... ok magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_negative magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_negative ... ok +magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_positive +magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_positive ... ok +magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_shared_start_end +magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_shared_start_end ... ok +magnum.tests.unit.api.controllers.test_base.TestController.test_controller_get_attr_version_not_found +magnum.tests.unit.api.controllers.test_base.TestController.test_controller_get_attr_version_not_found ... ok +magnum.tests.unit.api.controllers.test_base.TestController.test_controller_get_attribute +magnum.tests.unit.api.controllers.test_base.TestController.test_controller_get_attribute ... ok +magnum.tests.unit.api.controllers.test_base.TestVersion.test__eq__with_equal +magnum.tests.unit.api.controllers.test_base.TestVersion.test__eq__with_equal ... ok +magnum.tests.unit.api.controllers.test_base.TestVersion.test__eq__with_unequal +magnum.tests.unit.api.controllers.test_base.TestVersion.test__eq__with_unequal ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__ge__with_equal magnum.tests.unit.api.controllers.test_base.TestVersion.test__ge__with_equal ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__ge__with_higher_version @@ -10269,22 +10334,16 @@ magnum.tests.unit.api.controllers.test_base.TestVersion.test__gt__with_higher_major_version ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__gt__with_higher_minor_version magnum.tests.unit.api.controllers.test_base.TestVersion.test__gt__with_higher_minor_version ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. magnum.tests.unit.api.controllers.test_base.TestVersion.test__gt__with_lower_major_version magnum.tests.unit.api.controllers.test_base.TestVersion.test__gt__with_lower_major_version ... ok -magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_positive -magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_positive ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__gt__with_lower_minor_version magnum.tests.unit.api.controllers.test_base.TestVersion.test__gt__with_lower_minor_version ... ok -magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_shared_start_end -magnum.tests.unit.api.controllers.test_base.TestController.test_check_for_versions_intersection_shared_start_end ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__le__with_equal magnum.tests.unit.api.controllers.test_base.TestVersion.test__le__with_equal ... ok -magnum.tests.unit.api.controllers.test_base.TestController.test_controller_get_attr_version_not_found -magnum.tests.unit.api.controllers.test_base.TestController.test_controller_get_attr_version_not_found ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__le__with_higher_version magnum.tests.unit.api.controllers.test_base.TestVersion.test__le__with_higher_version ... ok -magnum.tests.unit.api.controllers.test_base.TestController.test_controller_get_attribute -magnum.tests.unit.api.controllers.test_base.TestController.test_controller_get_attribute ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__le__with_lower_version magnum.tests.unit.api.controllers.test_base.TestVersion.test__le__with_lower_version ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__lt__with_higher_major_version @@ -10295,34 +10354,45 @@ magnum.tests.unit.api.controllers.test_base.TestVersion.test__lt__with_lower_major_version ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__lt__with_lower_minor_version magnum.tests.unit.api.controllers.test_base.TestVersion.test__lt__with_lower_minor_version ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> c0f832afc4fd magnum.tests.unit.api.controllers.test_base.TestVersion.test__ne__with_equal magnum.tests.unit.api.controllers.test_base.TestVersion.test__ne__with_equal ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test__ne__with_unequal magnum.tests.unit.api.controllers.test_base.TestVersion.test__ne__with_unequal ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_init magnum.tests.unit.api.controllers.test_base.TestVersion.test_init ... ok +magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_disable_file +magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_disable_file ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_is_null_false magnum.tests.unit.api.controllers.test_base.TestVersion.test_is_null_false ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_is_null_true magnum.tests.unit.api.controllers.test_base.TestVersion.test_is_null_true ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_end_version magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_end_version ... ok +magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_enabled +magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_enabled ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_null_version magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_null_version ... ok +magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist +magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_start_version magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_start_version ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_valid_version magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_valid_version ... ok +magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist_not_abs +magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist_not_abs ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_version_too_high magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_version_too_high ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_version_too_low magnum.tests.unit.api.controllers.test_base.TestVersion.test_matches_version_too_low ... ok +magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_no_public_routes +magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_no_public_routes ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length magnum.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. magnum.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest magnum.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest ... ok +magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_root_access +magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_root_access ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_parse_incorrect_service_type @@ -10331,8 +10401,12 @@ magnum.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_repr magnum.tests.unit.api.controllers.test_base.TestVersion.test_repr ... ok +magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_v1_access +magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_v1_access ... ok magnum.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings magnum.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings ... ok +magnum.tests.unit.api.controllers.test_root.TestRootController.test_get_not_found +magnum.tests.unit.api.controllers.test_root.TestRootController.test_get_not_found ... ok magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_invalid_major_version magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_invalid_major_version ... ok magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_ok @@ -10341,102 +10415,97 @@ magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_too_high ... ok magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_too_low magnum.tests.unit.api.controllers.test_root.TestCheckVersions.test_check_version_too_low ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> c0f832afc4fd -magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_disable_file -magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_disable_file ... ok -magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_enabled -magnum.tests.unit.api.controllers.test_root.TestHeathcheck.test_healthcheck_enabled ... ok -magnum.tests.unit.api.controllers.test_root.TestV1Routing.test_route_checks_version -magnum.tests.unit.api.controllers.test_root.TestV1Routing.test_route_checks_version ... ok magnum.tests.unit.api.controllers.v1.test_certificate.TestCertObject.test_cert_init magnum.tests.unit.api.controllers.v1.test_certificate.TestCertObject.test_cert_init ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> c0f832afc4fd -magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist -magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name ... ok -magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist_not_abs -magnum.tests.unit.api.controllers.test_root.TestRootController.test_api_paste_file_not_exist_not_abs ... ok -magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_no_public_routes -magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_no_public_routes ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_multiple_cluster -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_multiple_cluster ... ok -magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_root_access -magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_root_access ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_not_found -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_not_found ... ok -magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_v1_access -magnum.tests.unit.api.controllers.test_root.TestRootController.test_auth_with_v1_access ... ok -magnum.tests.unit.api.controllers.test_root.TestRootController.test_get_not_found -magnum.tests.unit.api.controllers.test_root.TestRootController.test_get_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_links -magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_links ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_noauth magnum.tests.unit.api.controllers.test_root.TestRootController.test_noauth ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_v1_controller magnum.tests.unit.api.controllers.test_root.TestRootController.test_v1_controller ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert ... ok magnum.tests.unit.api.controllers.test_root.TestRootController.test_version magnum.tests.unit.api.controllers.test_root.TestRootController.test_version ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_by_cluster_name -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_by_cluster_name ... ok +magnum.tests.unit.api.controllers.test_root.TestV1Routing.test_route_checks_version +magnum.tests.unit.api.controllers.test_root.TestV1Routing.test_route_checks_version ... ok magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_create magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_create ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_cluster_not_found -magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_cluster_not_found ... ok magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_get_one magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificate.test_rotate_ca_cert -magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificate.test_rotate_ca_cert ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterObject.test_cluster_init -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterObject.test_cluster_init ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_rotate magnum.tests.unit.api.controllers.v1.test_certificate.TestCertPolicyEnforcement.test_policy_disallow_rotate ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_add_non_existent_property -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_add_non_existent_property ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> c0f832afc4fd +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_by_cluster_name +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_by_cluster_name ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_cluster_not_found +magnum.tests.unit.api.controllers.v1.test_certificate.TestPost.test_create_cert_cluster_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_multiple_cluster +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_multiple_cluster ... ok magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificateNonTls.test_rotate_ca_cert_non_tls magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificateNonTls.test_rotate_ca_cert_non_tls ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_mandatory_property_fail -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_mandatory_property_fail ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterObject.test_cluster_init +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterObject.test_cluster_init ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_not_found +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_get_one_by_name_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_links +magnum.tests.unit.api.controllers.v1.test_certificate.TestGetCaCertificate.test_links ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_as_admin +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_as_admin ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_not_found +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificate.test_rotate_ca_cert +magnum.tests.unit.api.controllers.v1.test_certificate.TestRotateCaCertificate.test_rotate_ca_cert ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name_not_found +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name_not_found ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_create magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_create ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_delete magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_delete ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_multiple_cluster_by_name +magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_multiple_cluster_by_name ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_detail magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_detail ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_all +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_all ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_one +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_update +magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_update ... ok GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.magnum.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'http://docs.openstack.org/developer/magnum/dev/api-spec-v1.html', 'rel': 'describedby', 'type': 'text/html'}], 'clustertemplates': [{'href': 'http://localhost/v1/clustertemplates/', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/', 'rel': 'bookmark'}], 'clusters': [{'href': 'http://localhost/v1/clusters/', 'rel': 'self'}, {'href': 'http://localhost/clusters/', 'rel': 'bookmark'}], 'quotas': [{'href': 'http://localhost/v1/quotas/', 'rel': 'self'}, {'href': 'http://localhost/quotas/', 'rel': 'bookmark'}], 'certificates': [{'href': 'http://localhost/v1/certificates/', 'rel': 'self'}, {'href': 'http://localhost/certificates/', 'rel': 'bookmark'}], 'mservices': [{'href': 'http://localhost/v1/mservices/', 'rel': 'self'}, {'href': 'http://localhost/mservices/', 'rel': 'bookmark'}], 'stats': [{'href': 'http://localhost/v1/stats/', 'rel': 'self'}, {'href': 'http://localhost/stats/', 'rel': 'bookmark'}], 'federations': [{'href': 'http://localhost/v1/federations/', 'rel': 'self'}, {'href': 'http://localhost/federations/', 'rel': 'bookmark'}], 'nodegroups': [{'href': 'http://localhost/v1/clusters/{cluster_id}/nodegroups', 'rel': 'self'}, {'href': 'http://localhost/clusters/{cluster_id}/nodegroups', 'rel': 'bookmark'}]} +POST: /v1/certificates {'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'csr': 'fake-csr', 'pem': 'fake-pem'} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow certificate:create to be performed", "detail": "Policy doesn't allow certificate:create to be performed.", "links": []}]} GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} -GET: /v1/certificates/cluster1 {} -GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} -GET: /v1/certificates/test_cluster {} -GOT:Response: 409 Conflict +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} -GET: /v1/certificates/not_found {} -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow certificate:get to be performed", "detail": "Policy doesn't allow certificate:get to be performed.", "links": []}]} +PATCH: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} -GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} -GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} -GET: /certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow certificate:rotate_ca to be performed", "detail": "Policy doesn't allow certificate:rotate_ca to be performed.", "links": []}]} POST: /v1/certificates {'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'csr': 'fake-csr'} GOT:Response: 201 Created Content-Type: application/json @@ -10462,104 +10531,115 @@ Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} PATCH: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:Response: 202 Accepted +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Rotating the CA certificate on a non-TLS cluster is not supported", "detail": "Rotating the CA certificate on a non-TLS cluster is not supported", "links": []}]} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 +GOT:Response: 204 No Content +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version + +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Adding a new attribute /foo to the root of the resource is not allowed", "detail": "Adding a new attribute /foo to the root of the resource is not allowed.", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 could not be found", "detail": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 could not be found.", "links": []}]} +DELETE: /v1/clusters/d08d5120-6906-40e0-b45a-b3db5da090f7 +GOT:Response: 204 No Content +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version + +DELETE: /v1/clusters/a46098a4-b6f3-4747-9772-604b2bc66d48 +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/uuid' is an internal attribute and can not be updated", "detail": "'/uuid' is an internal attribute and can not be updated", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster a46098a4-b6f3-4747-9772-604b2bc66d48 could not be found", "detail": "Cluster a46098a4-b6f3-4747-9772-604b2bc66d48 could not be found.", "links": []}]} +DELETE: /v1/clusters/cluster1 +GOT:Response: 204 No Content +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version + +DELETE: /v1/clusters/not_found +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/cluster_template_id' is a mandatory attribute and can not be removed", "detail": "'/cluster_template_id' is a mandatory attribute and can not be removed", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/non-existent', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} +DELETE: /v1/clusters/test_cluster +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'", "detail": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'. Reason: can't remove a non-existent object 'non-existent'", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_non_existent_property -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_non_existent_property ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_all -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_all ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_one -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_ok ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_update -magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_disallow_update ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_name_failed -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_name_failed ... ok +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} +GET: /v1/clusters/?limit=3 {} +GOT:{'clusters': [{'uuid': '362ffcce-0fc1-4076-8c4a-c9388721770f', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/362ffcce-0fc1-4076-8c4a-c9388721770f', 'rel': 'self'}, {'href': 'http://localhost/clusters/362ffcce-0fc1-4076-8c4a-c9388721770f', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '92d77824-6cd2-4d9a-92e1-d355f946092d', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/92d77824-6cd2-4d9a-92e1-d355f946092d', 'rel': 'self'}, {'href': 'http://localhost/clusters/92d77824-6cd2-4d9a-92e1-d355f946092d', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '6f14d5e6-d10b-4199-bc81-9302e0414c03', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/6f14d5e6-d10b-4199-bc81-9302e0414c03', 'rel': 'self'}, {'href': 'http://localhost/clusters/6f14d5e6-d10b-4199-bc81-9302e0414c03', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}], 'next': 'http://localhost/v1/clusters?sort_key=id&sort_dir=asc&limit=3&marker=6f14d5e6-d10b-4199-bc81-9302e0414c03'}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_delete magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_delete ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_template_id_failed -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_template_id_failed ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links_default_limit +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links_default_limit ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_get_one magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_update magnum.tests.unit.api.controllers.v1.test_cluster.TestClusterPolicyEnforcement.test_policy_only_owner_update ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_health_status_ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_health_status_ok ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_invalid_node_count -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_invalid_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster ... ok -POST: /v1/certificates {'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'csr': 'fake-csr', 'pem': 'fake-pem'} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow certificate:create to be performed", "detail": "Policy doesn't allow certificate:create to be performed.", "links": []}]} +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_against_single +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_against_single ... ok GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:Response: 403 Forbidden +GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} +GET: /v1/certificates/cluster1 {} +GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} +GET: /v1/certificates/test_cluster {} +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow certificate:get to be performed", "detail": "Policy doesn't allow certificate:get to be performed.", "links": []}]} -PATCH: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:Response: 403 Forbidden +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} +GET: /v1/certificates/not_found {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow certificate:rotate_ca to be performed", "detail": "Policy doesn't allow certificate:rotate_ca to be performed.", "links": []}]} +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} +GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} +GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} +GET: /certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'links': [{'href': 'http://localhost/v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'csr': 'fake-csr', 'pem': 'fake-pem'} PATCH: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:Response: 400 Bad Request +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Rotating the CA certificate on a non-TLS cluster is not supported", "detail": "Rotating the CA certificate on a non-TLS cluster is not supported", "links": []}]} +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 403 Forbidden Content-Type: application/json @@ -10576,7 +10656,7 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:delete to be performed", "detail": "Policy doesn't allow cluster:delete to be performed.", "links": []}]} -GET: /v1/clusters/d50dc7b4-72bd-4ced-815b-862845a57655/detail {} +GET: /v1/clusters/4935d95a-7188-460e-a46d-02892f7d566c/detail {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -10632,42 +10712,92 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow cluster:update to be performed", "detail": "Policy doesn't allow cluster:update to be performed.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 -GOT:Response: 204 No Content +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/foo', 'value': 'bar', 'op': 'add'}]magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_add_non_existent_property +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_add_non_existent_property ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_mandatory_property_fail +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_mandatory_property_fail ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_with_pagination_marker ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_empty +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_empty ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_non_existent_property +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_non_existent_property ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_all_projects +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_all_projects ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_remove_ok ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_name_failed +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_name_failed ... ok + +GET: /v1/clusters {} +GOT:{'clusters': [{'uuid': 'e9dce69c-0759-450d-b249-d4866e37dfd2', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/e9dce69c-0759-450d-b249-d4866e37dfd2', 'rel': 'self'}, {'href': 'http://localhost/clusters/e9dce69c-0759-450d-b249-d4866e37dfd2', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'd57b55a3-9a6c-488a-b9aa-b038bf594408', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/d57b55a3-9a6c-488a-b9aa-b038bf594408', 'rel': 'self'}, {'href': 'http://localhost/clusters/d57b55a3-9a6c-488a-b9aa-b038bf594408', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '90bbf607-6fd9-4177-87f2-896f65280099', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/90bbf607-6fd9-4177-87f2-896f65280099', 'rel': 'self'}, {'href': 'http://localhost/clusters/90bbf607-6fd9-4177-87f2-896f65280099', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}], 'next': 'http://localhost/v1/clusters?sort_key=id&sort_dir=asc&limit=3&marker=90bbf607-6fd9-4177-87f2-896f65280099'} +GET: /v1/clusters/detail {} +GOT:{'clusters': [{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:06.357596+00:00', 'updated_at': None}]} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/detail {} +GOT:Response: 404 Not Found +Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "The %(name)s resource %(id)s could not be found", "detail": "The %(name)s resource %(id)s could not be found.", "links": []}]} +GET: /v1/clusters/detail?limit=3&marker=2ff29efd-e6b8-4fbc-b159-20a1b3468655 {} +GOT:{'clusters': [{'uuid': '79d1ef63-cfee-49fe-a268-d0df9cde64eb', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/79d1ef63-cfee-49fe-a268-d0df9cde64eb', 'rel': 'self'}, {'href': 'http://localhost/clusters/79d1ef63-cfee-49fe-a268-d0df9cde64eb', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:06.548863+00:00', 'updated_at': None}]} +GET: /v1/clusters {} +GOT:{'clusters': []} +GET: /v1/clusters {} +GOT:{'clusters': [{'uuid': 'd4a696ac-8772-40f0-8821-545d50fc40c2', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/d4a696ac-8772-40f0-8821-545d50fc40c2', 'rel': 'self'}, {'href': 'http://localhost/clusters/d4a696ac-8772-40f0-8821-545d50fc40c2', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'd8db36c8-8657-4271-b517-bd78668696dd', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/d8db36c8-8657-4271-b517-bd78668696dd', 'rel': 'self'}, {'href': 'http://localhost/clusters/d8db36c8-8657-4271-b517-bd78668696dd', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'b86e5af1-d312-449a-9402-efb609a3cbbe', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/b86e5af1-d312-449a-9402-efb609a3cbbe', 'rel': 'self'}, {'href': 'http://localhost/clusters/b86e5af1-d312-449a-9402-efb609a3cbbe', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '46b674f5-1a48-470b-8b82-62acb50c74da', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/46b674f5-1a48-470b-8b82-62acb50c74da', 'rel': 'self'}, {'href': 'http://localhost/clusters/46b674f5-1a48-470b-8b82-62acb50c74da', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]} +GET: /v1/clusters?limit=3&marker=ffecab63-d01e-4190-998a-1224fccc3e38 {} +GOT:{'clusters': [{'uuid': '0981d4ff-b7e1-4eac-b0ca-9f291cac58ad', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/0981d4ff-b7e1-4eac-b0ca-9f291cac58ad', 'rel': 'self'}, {'href': 'http://localhost/clusters/0981d4ff-b7e1-4eac-b0ca-9f291cac58ad', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_pagination_marker ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_template_id_failed +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_cluster_template_id_failed ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_multiple_cluster +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_multiple_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_not_found +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_health_status_ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_health_status_ok ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid ... ok -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:Response: 404 Not Found +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 could not be found", "detail": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 could not be found.", "links": []}]} -DELETE: /v1/clusters/725193c6-cda6-48d1-a570-3f7c923c2169 -GOT:Response: 204 No Content +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Adding a new attribute /foo to the root of the resource is not allowed", "detail": "Adding a new attribute /foo to the root of the resource is not allowed.", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_as_admin -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_not_found -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster_template_id -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster_template_id ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name_not_found -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_cluster_with_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_multiple_cluster_by_name -magnum.tests.unit.api.controllers.v1.test_cluster.TestDelete.test_delete_multiple_cluster_by_name ... ok - +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/uuid' is an internal attribute and can not be updated", "detail": "'/uuid' is an internal attribute and can not be updated", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/cluster_template_id' is a mandatory attribute and can not be removed", "detail": "'/cluster_template_id' is a mandatory attribute and can not be removed", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/non-existent', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'", "detail": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'. Reason: can't remove a non-existent object 'non-existent'", "links": []}]} GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:44.493396+00:00', 'updated_at': None} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:06.688675+00:00', 'updated_at': None} PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'op': 'remove'}] GOT:Response: 202 Accepted Content-Type: application/json @@ -10677,7 +10807,7 @@ Vary: OpenStack-API-Version {"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 1, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:44.493396+00:00', 'updated_at': '2026-01-22T07:06:44.553289+00:00'} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 1, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:06.688675+00:00', 'updated_at': '2026-01-22T07:15:06.828173+00:00'} PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/name', 'value': 'cluster_example_B', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json @@ -10686,7 +10816,7 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 400, "title": "cannot change cluster property(ies) name", "detail": "cannot change cluster property(ies) name.", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'value': 'a10e233b-ae89-42b3-89b4-4acfa0f874fa', 'op': 'replace'}] +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'value': '7457bc45-38a7-4a47-a85a-f87267ef0919', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -10703,148 +10833,141 @@ Vary: OpenStack-API-Version {"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'HEALTHY', 'health_status_reason': {'api': 'ok'}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4', '172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:44.694859+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': -1, 'op': 'replace'}] -GOT:Response: 400 Bad Request +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'HEALTHY', 'health_status_reason': {'api': 'ok'}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4', '172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:07.140884+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': -1, 'op': 'replace'}]magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_invalid_node_count +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_invalid_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_admin +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_admin ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_not_found +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster_template_id +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_non_existent_cluster_template_id ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_failed_cluster +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_failed_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok ... ok + +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:06.995674+00:00', 'updated_at': None} +GET: /v1/clusters/cluster1 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:07.094571+00:00', 'updated_at': None} +GET: /v1/clusters/test_cluster {} +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute node_count", "detail": "Invalid input for field/attribute node_count. Value: '-1'. Value should be greater or equal to 0", "links": []}]} -PATCH: /v1/clusters/079cece1-ee7d-4644-adbb-ba4f68e9fb17 [{'path': '/name', 'value': 'cluster_example_B', 'op': 'replace'}] +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} +GET: /v1/clusters/not_found {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 079cece1-ee7d-4644-adbb-ba4f68e9fb17 could not be found", "detail": "Cluster 079cece1-ee7d-4644-adbb-ba4f68e9fb17 could not be found.", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'value': '142d4b57-42dc-4819-8847-1c2cfb001ade', 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "cannot change cluster property(ies) cluster_template_id", "detail": "cannot change cluster property(ies) cluster_template_id.", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': 4, 'op': 'replace'}] -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} +GET: /v1/clusters/c98f5228-36aa-4796-99a1-e9e8ed77b79e {} +GOT:{'uuid': 'c98f5228-36aa-4796-99a1-e9e8ed77b79e', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/c98f5228-36aa-4796-99a1-e9e8ed77b79e', 'rel': 'self'}, {'href': 'http://localhost/clusters/c98f5228-36aa-4796-99a1-e9e8ed77b79e', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:07.301353+00:00', 'updated_at': None} +GET: /v1/clusters/17d9d867-03f0-4aeb-a9df-18fcda8dfe08 {} +GOT:{'uuid': '17d9d867-03f0-4aeb-a9df-18fcda8dfe08', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/17d9d867-03f0-4aeb-a9df-18fcda8dfe08', 'rel': 'self'}, {'href': 'http://localhost/clusters/17d9d867-03f0-4aeb-a9df-18fcda8dfe08', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': '17d9d867-03f0-4aeb-a9df-18fcda8dfe08', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:07.401203+00:00', 'updated_at': None} +GET: /v1/clusters/a4290245-494f-4b99-83ba-76e30889169d {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster a4290245-494f-4b99-83ba-76e30889169d could not be found", "detail": "Cluster a4290245-494f-4b99-83ba-76e30889169d could not be found.", "links": []}]} GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 4, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:44.898556+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'}magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok ... ok +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_FAILED', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'faults': {'test-master': 'fake_reason'}, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:07.539081+00:00', 'updated_at': None} +GET: /v1/clusters/03b181ca-c3b3-4280-94e3-6fbb1f794c3d {} +GOT:{'uuid': '03b181ca-c3b3-4280-94e3-6fbb1f794c3d', 'name': 'cluster1', 'cluster_template_id': '429e10e9-0787-4215-9d0b-3363c148127b', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/03b181ca-c3b3-4280-94e3-6fbb1f794c3d', 'rel': 'self'}, {'href': 'http://localhost/clusters/03b181ca-c3b3-4280-94e3-6fbb1f794c3d', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {'label2': 'value2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:07.649988+00:00', 'updated_at': None}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_merged_labels +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_merged_labels ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_links +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_links ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_multiple_cluster magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_multiple_cluster ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_not_found magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links_default_limit -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_collection_links_default_limit ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_uuid_not_found magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_replace_ok_by_uuid_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_against_single -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_against_single ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_as_admin magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_as_admin ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_many +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_many ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_one +magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_one ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_disabled +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_disabled ... ok -DELETE: /v1/clusters/eac93202-9580-413e-97fd-55488d235ef1 -GOT:Response: 404 Not Found +GET: /v1/clusters/a5203826-6aff-467e-bdc4-f2cb460d7c9f {} +GOT:{'uuid': 'a5203826-6aff-467e-bdc4-f2cb460d7c9f', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/a5203826-6aff-467e-bdc4-f2cb460d7c9f', 'rel': 'self'}, {'href': 'http://localhost/clusters/a5203826-6aff-467e-bdc4-f2cb460d7c9f', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:07.737812+00:00', 'updated_at': None} +GET: /v1/clusters/a5203826-6aff-467e-bdc4-f2cb460d7c9f {} +GOT:{'uuid': 'a5203826-6aff-467e-bdc4-f2cb460d7c9f', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/a5203826-6aff-467e-bdc4-f2cb460d7c9f', 'rel': 'self'}, {'href': 'http://localhost/clusters/a5203826-6aff-467e-bdc4-f2cb460d7c9f', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:07.737812+00:00', 'updated_at': None} +GET: /clusters/a5203826-6aff-467e-bdc4-f2cb460d7c9f {} +GOT:{'uuid': 'a5203826-6aff-467e-bdc4-f2cb460d7c9f', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/a5203826-6aff-467e-bdc4-f2cb460d7c9f', 'rel': 'self'}, {'href': 'http://localhost/clusters/a5203826-6aff-467e-bdc4-f2cb460d7c9f', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:07.737812+00:00', 'updated_at': None} +GET: /v1/clusters {} +GOT:{'clusters': [{'uuid': '8d15f252-35b6-4c7e-a5f7-ac157de3869c', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/8d15f252-35b6-4c7e-a5f7-ac157de3869c', 'rel': 'self'}, {'href': 'http://localhost/clusters/8d15f252-35b6-4c7e-a5f7-ac157de3869c', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '25974876-9eef-4008-84e7-161614da5aa0', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/25974876-9eef-4008-84e7-161614da5aa0', 'rel': 'self'}, {'href': 'http://localhost/clusters/25974876-9eef-4008-84e7-161614da5aa0', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '48b81c26-41f6-4bee-92eb-3db120676146', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/48b81c26-41f6-4bee-92eb-3db120676146', 'rel': 'self'}, {'href': 'http://localhost/clusters/48b81c26-41f6-4bee-92eb-3db120676146', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'b0c565a0-65ef-4855-b84a-5f0fc8873331', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/b0c565a0-65ef-4855-b84a-5f0fc8873331', 'rel': 'self'}, {'href': 'http://localhost/clusters/b0c565a0-65ef-4855-b84a-5f0fc8873331', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'c252d2d7-b057-42fd-b232-0eade29187fb', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/c252d2d7-b057-42fd-b232-0eade29187fb', 'rel': 'self'}, {'href': 'http://localhost/clusters/c252d2d7-b057-42fd-b232-0eade29187fb', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]} +GET: /v1/clusters {} +GOT:{'clusters': [{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6} +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.7 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster eac93202-9580-413e-97fd-55488d235ef1 could not be found", "detail": "Cluster eac93202-9580-413e-97fd-55488d235ef1 could not be found.", "links": []}]} -DELETE: /v1/clusters/cluster1 -GOT:Response: 204 No Content +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:08.544075+00:00', 'updated_at': None}magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_master_nodegroup +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_master_nodegroup ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_greater_than_max +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_greater_than_max ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_enabled +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_enabled ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_less_than_min +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_less_than_min ... ok + +GOT:Response: 400 Bad Request +Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version - -DELETE: /v1/clusters/not_found +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute node_count", "detail": "Invalid input for field/attribute node_count. Value: '-1'. Value should be greater or equal to 0", "links": []}]} +PATCH: /v1/clusters/390db707-fd35-4028-a308-92d2b27df33a [{'path': '/name', 'value': 'cluster_example_B', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} -DELETE: /v1/clusters/test_cluster -GOT:Response: 409 Conflict +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 390db707-fd35-4028-a308-92d2b27df33a could not be found", "detail": "Cluster 390db707-fd35-4028-a308-92d2b27df33a could not be found.", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/cluster_template_id', 'value': '22e11c31-f8ff-44f4-9840-51533eaa1ad0', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} -GET: /v1/clusters/?limit=3 {} -GOT:{'clusters': [{'uuid': '40c81961-5b91-4eeb-9d20-28dd363fb313', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/40c81961-5b91-4eeb-9d20-28dd363fb313', 'rel': 'self'}, {'href': 'http://localhost/clusters/40c81961-5b91-4eeb-9d20-28dd363fb313', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'c683cea1-5f63-47b8-a869-679a342a7428', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/c683cea1-5f63-47b8-a869-679a342a7428', 'rel': 'self'}, {'href': 'http://localhost/clusters/c683cea1-5f63-47b8-a869-679a342a7428', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '77633db3-df70-4ef6-8499-850adb89f86a', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/77633db3-df70-4ef6-8499-850adb89f86a', 'rel': 'self'}, {'href': 'http://localhost/clusters/77633db3-df70-4ef6-8499-850adb89f86a', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}], 'next': 'http://localhost/v1/clusters?sort_key=id&sort_dir=asc&limit=3&marker=77633db3-df70-4ef6-8499-850adb89f86a'} -GET: /v1/clusters {} -GOT:{'clusters': [{'uuid': '5f16cb2b-b08c-4fa6-aa59-838abd35cd99', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5f16cb2b-b08c-4fa6-aa59-838abd35cd99', 'rel': 'self'}, {'href': 'http://localhost/clusters/5f16cb2b-b08c-4fa6-aa59-838abd35cd99', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'fd0e5b47-d2da-4cfe-af2a-cb63a21b56c6', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/fd0e5b47-d2da-4cfe-af2a-cb63a21b56c6', 'rel': 'self'}, {'href': 'http://localhost/clusters/fd0e5b47-d2da-4cfe-af2a-cb63a21b56c6', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'f6f0bf14-b618-4216-915b-6746c7548afd', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/f6f0bf14-b618-4216-915b-6746c7548afd', 'rel': 'self'}, {'href': 'http://localhost/clusters/f6f0bf14-b618-4216-915b-6746c7548afd', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}], 'next': 'http://localhost/v1/clusters?sort_key=id&sort_dir=asc&limit=3&marker=f6f0bf14-b618-4216-915b-6746c7548afd'} -GET: /v1/clusters/detail {} -GOT:{'clusters': [{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:45.145249+00:00', 'updated_at': None}]} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/detail {} -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "cannot change cluster property(ies) cluster_template_id", "detail": "cannot change cluster property(ies) cluster_template_id.", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': 4, 'op': 'replace'}] +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "The %(name)s resource %(id)s could not be found", "detail": "The %(name)s resource %(id)s could not be found.", "links": []}]} -GET: /v1/clusters/detail?limit=3&marker=64b5975c-e281-4aa7-9555-44d77ffec517 {} -GOT:{'clusters': [{'uuid': '4065ebf0-891f-4aa3-860f-2dd23d810ddd', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/4065ebf0-891f-4aa3-860f-2dd23d810ddd', 'rel': 'self'}, {'href': 'http://localhost/clusters/4065ebf0-891f-4aa3-860f-2dd23d810ddd', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:45.231742+00:00', 'updated_at': None}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_detail_with_pagination_marker ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_empty -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_empty ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_all_projects -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_all_projects ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_disabled -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_disabled ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_enabled -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_rollback_enabled ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count_fail -magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count_fail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplateObject.test_cluster_template_init -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplateObject.test_cluster_template_init ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_all_with_pagination_marker ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestFederationObject.test_federation_init -magnum.tests.unit.api.controllers.v1.test_federation.TestFederationObject.test_federation_init ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_against_single -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_against_single ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_with_pagination_marker ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_empty -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_empty ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_all_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_all_with_pagination_marker ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_multiple_cluster -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_multiple_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_not_found -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid ... ok - +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 4, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:07.579683+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} PATCH: /v1/clusters/cluster_example_A [{'path': '/node_count', 'value': 4, 'op': 'replace'}] GOT:Response: 202 Accepted Content-Type: application/json @@ -10854,7 +10977,7 @@ Vary: OpenStack-API-Version {"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 4, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:44.974134+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 4, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'UPDATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': 'UNKNOWN', 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:07.741206+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} PATCH: /v1/clusters/test_cluster [{'path': '/name', 'value': 'test_cluster', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json @@ -10871,22 +10994,22 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} -PATCH: /v1/clusters/37102416-1e24-4147-a9e5-328dc1c062e7 [{'path': '/cluster_id', 'value': '37102416-1e24-4147-a9e5-328dc1c062e7', 'op': 'replace'}] +PATCH: /v1/clusters/e0ed3818-f26b-4949-b352-392ce7bc4519 [{'path': '/cluster_id', 'value': 'e0ed3818-f26b-4949-b352-392ce7bc4519', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 37102416-1e24-4147-a9e5-328dc1c062e7 could not be found", "detail": "Cluster 37102416-1e24-4147-a9e5-328dc1c062e7 could not be found.", "links": []}]} -PATCH: /v1/clusters/e05a8aa9-476c-45e0-bc1e-70cb92e36a8f [{'path': '/node_count', 'value': 4, 'op': 'replace'}] +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster e0ed3818-f26b-4949-b352-392ce7bc4519 could not be found", "detail": "Cluster e0ed3818-f26b-4949-b352-392ce7bc4519 could not be found.", "links": []}]} +PATCH: /v1/clusters/408a1a49-1a81-4dc5-b925-c8eeb97da1b8 [{'path': '/node_count', 'value': 4, 'op': 'replace'}] GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "e05a8aa9-476c-45e0-bc1e-70cb92e36a8f"} +{"uuid": "408a1a49-1a81-4dc5-b925-c8eeb97da1b8"} PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/?rollback=False [{'path': '/node_count', 'value': 4, 'op': 'replace'}] GOT:Response: 202 Accepted Content-Type: application/json @@ -10910,303 +11033,175 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.10 Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': 0, 'op': 'replace'}] +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"}magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_nodegroup +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_nodegroup ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count_fail +magnum.tests.unit.api.controllers.v1.test_cluster.TestPatch.test_update_cluster_with_zero_node_count_fail ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count_fail +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count_fail ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplateObject.test_cluster_template_init +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplateObject.test_cluster_template_init ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_doesnt_contain_id +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_doesnt_contain_id ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_as_admin +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_as_admin ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_generate_uuid +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_generate_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_no_cluster_template_id +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_no_cluster_template_id ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_cluster +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_cluster ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_resource_limit_reached +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_resource_limit_reached ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_set_project_id_and_user_id +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_set_project_id_and_user_id ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_multiple_cluster_template_by_name +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_multiple_cluster_template_by_name ... ok + +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': '7711bc54-9c91-4327-b644-7a2c3049ddfb'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.9 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a nodegroup to zero is not supported in the provided microversion", "detail": "Resizing a nodegroup to zero is not supported in the provided microversion.", "links": []}]} -GET: /v1/federations/detail {} -GOT:{'federations': [{'uuid': '791936ff-3e91-4f45-8aad-46a8d476a709', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/791936ff-3e91-4f45-8aad-46a8d476a709', 'rel': 'self'}, {'href': 'http://localhost/federations/791936ff-3e91-4f45-8aad-46a8d476a709', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:45.614344+00:00', 'updated_at': None}]} -GET: /v1/federations/9909652a-64a9-4395-a74b-32de167ae865/detail {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "The %(name)s resource %(id)s could not be found", "detail": "The %(name)s resource %(id)s could not be found.", "links": []}]} -GET: /v1/federations/detail?limit=3&marker=cd2f5ea0-9cc2-4bfc-9fd7-84f33b264f63 {} -GOT:{'federations': [{'uuid': 'ec18f399-0d69-4e0a-97de-caf97da68848', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/ec18f399-0d69-4e0a-97de-caf97da68848', 'rel': 'self'}, {'href': 'http://localhost/federations/ec18f399-0d69-4e0a-97de-caf97da68848', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:45.661914+00:00', 'updated_at': None}]} -GET: /v1/federations {} -GOT:{'federations': []} -GET: /v1/federations?limit=3&marker=a47f6fd3-84b5-41b7-a294-9bf977714803 {} -GOT:{'federations': [{'uuid': '257a823e-6d37-4992-b920-3285c40de847', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/257a823e-6d37-4992-b920-3285c40de847', 'rel': 'self'}, {'href': 'http://localhost/federations/257a823e-6d37-4992-b920-3285c40de847', 'rel': 'bookmark'}]}]} -GET: /v1/federations/243d922a-e2c0-462b-a213-2e76a9618ef7 {} -GOT:{'uuid': '243d922a-e2c0-462b-a213-2e76a9618ef7', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/243d922a-e2c0-462b-a213-2e76a9618ef7', 'rel': 'self'}, {'href': 'http://localhost/federations/243d922a-e2c0-462b-a213-2e76a9618ef7', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:45.731795+00:00', 'updated_at': None}magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_multiple_federation -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_multiple_federation ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_not_found -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid_not_found -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_links -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_links ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_many -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_many ... ok - -GET: /v1/clusters {} -GOT:{'clusters': []} -GET: /v1/clusters {} -GOT:{'clusters': [{'uuid': '2b4a13d3-e483-46d5-a8e0-8dd1ae540de8', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/2b4a13d3-e483-46d5-a8e0-8dd1ae540de8', 'rel': 'self'}, {'href': 'http://localhost/clusters/2b4a13d3-e483-46d5-a8e0-8dd1ae540de8', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '9f73fb01-eb10-4329-8ad5-cdaa047236ad', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/9f73fb01-eb10-4329-8ad5-cdaa047236ad', 'rel': 'self'}, {'href': 'http://localhost/clusters/9f73fb01-eb10-4329-8ad5-cdaa047236ad', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'fff91016-f2bc-49f9-a6f7-b09d437a6c3c', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/fff91016-f2bc-49f9-a6f7-b09d437a6c3c', 'rel': 'self'}, {'href': 'http://localhost/clusters/fff91016-f2bc-49f9-a6f7-b09d437a6c3c', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'ddab932b-6693-482c-be28-7b732b389dd4', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/ddab932b-6693-482c-be28-7b732b389dd4', 'rel': 'self'}, {'href': 'http://localhost/clusters/ddab932b-6693-482c-be28-7b732b389dd4', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]} -GET: /v1/clusters?limit=3&marker=3fdf0161-2744-4c58-979b-9aa0d588787f {} -GOT:{'clusters': [{'uuid': '5a0f2297-1e9e-4dfb-8ac1-746e471d447f', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5a0f2297-1e9e-4dfb-8ac1-746e471d447f', 'rel': 'self'}, {'href': 'http://localhost/clusters/5a0f2297-1e9e-4dfb-8ac1-746e471d447f', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:45.616089+00:00', 'updated_at': None} -GET: /v1/clusters/cluster1 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:45.659476+00:00', 'updated_at': None} -GET: /v1/clusters/test_cluster {} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple clusters exist with same name", "detail": "Multiple clusters exist with same name. Please use the cluster uuid instead.", "links": []}]} -GET: /v1/clusters/not_found {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_found could not be found", "detail": "Cluster not_found could not be found.", "links": []}]} -GET: /v1/clusters/b943c86c-6d1d-4b12-b407-51e6351e5dc8 {} -GOT:{'uuid': 'b943c86c-6d1d-4b12-b407-51e6351e5dc8', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/b943c86c-6d1d-4b12-b407-51e6351e5dc8', 'rel': 'self'}, {'href': 'http://localhost/clusters/b943c86c-6d1d-4b12-b407-51e6351e5dc8', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:45.758014+00:00', 'updated_at': None} -GET: /v1/clusters/b39c6f81-fd02-4d69-86be-bd2576f34764 {} -GOT:{'uuid': 'b39c6f81-fd02-4d69-86be-bd2576f34764', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/b39c6f81-fd02-4d69-86be-bd2576f34764', 'rel': 'self'}, {'href': 'http://localhost/clusters/b39c6f81-fd02-4d69-86be-bd2576f34764', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'b39c6f81-fd02-4d69-86be-bd2576f34764', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:45.802551+00:00', 'updated_at': None}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_admin -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_admin ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_not_found -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_by_uuid_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_failed_cluster -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_failed_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_one -magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_one ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_merged_labels -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_get_one_merged_labels ... ok - -GET: /v1/federations/fake-name {} -GOT:{'uuid': '51ea72b1-aa8d-497b-a34e-57cc8ad16eda', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/51ea72b1-aa8d-497b-a34e-57cc8ad16eda', 'rel': 'self'}, {'href': 'http://localhost/federations/51ea72b1-aa8d-497b-a34e-57cc8ad16eda', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:45.752027+00:00', 'updated_at': None} -GET: /v1/federations/test_federation {} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple federations exist with same name", "detail": "Multiple federations exist with same name. Please use the federation uuid instead.", "links": []}]} -GET: /v1/federations/not_found {} -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a master nodegroup is not supported", "detail": "Resizing a master nodegroup is not supported.", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': 'c416b2e3-ca05-4ac4-881a-2fd43bb44c3d'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.9 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation not_found could not be found", "detail": "Federation not_found could not be found.", "links": []}]} -GET: /v1/federations/c3ec5549-fceb-408b-9928-f7184a7653c6 {} -GOT:{'uuid': 'c3ec5549-fceb-408b-9928-f7184a7653c6', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/c3ec5549-fceb-408b-9928-f7184a7653c6', 'rel': 'self'}, {'href': 'http://localhost/federations/c3ec5549-fceb-408b-9928-f7184a7653c6', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:45.811867+00:00', 'updated_at': None} -GET: /v1/federations/c96aa3b6-3c8e-4c38-9ea3-ea0574765f13 {} -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing test-worker outside the allowed range: min_node_count = 1, max_node_count = 5", "detail": "Resizing test-worker outside the allowed range: min_node_count = 1, max_node_count = 5", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 3, 'nodegroup': '869f0cec-a407-4335-93b5-42c68436e611'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.9 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation c96aa3b6-3c8e-4c38-9ea3-ea0574765f13 could not be found", "detail": "Federation c96aa3b6-3c8e-4c38-9ea3-ea0574765f13 could not be found.", "links": []}]} -GET: /v1/federations/c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5 {} -GOT:{'uuid': 'c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5', 'rel': 'self'}, {'href': 'http://localhost/federations/c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:45.848997+00:00', 'updated_at': None} -GET: /v1/federations/c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5 {} -GOT:{'uuid': 'c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5', 'rel': 'self'}, {'href': 'http://localhost/federations/c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:45.848997+00:00', 'updated_at': None} -GET: /federations/c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5 {} -GOT:{'uuid': 'c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5', 'rel': 'self'}, {'href': 'http://localhost/federations/c1704e28-067b-4ca2-8e9c-0c0b51ab5ac5', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:45.848997+00:00', 'updated_at': None} -GET: /v1/federations {} -GOT:{'federations': [{'uuid': 'f88fde33-16f0-40a7-8e6b-314db20c6c35', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/f88fde33-16f0-40a7-8e6b-314db20c6c35', 'rel': 'self'}, {'href': 'http://localhost/federations/f88fde33-16f0-40a7-8e6b-314db20c6c35', 'rel': 'bookmark'}]}, {'uuid': '687320e5-4fc6-482d-8a9f-e3b1b75b4f1f', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/687320e5-4fc6-482d-8a9f-e3b1b75b4f1f', 'rel': 'self'}, {'href': 'http://localhost/federations/687320e5-4fc6-482d-8a9f-e3b1b75b4f1f', 'rel': 'bookmark'}]}, {'uuid': 'd936e2d5-b5d7-4e9a-a413-5d4226ba9448', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/d936e2d5-b5d7-4e9a-a413-5d4226ba9448', 'rel': 'self'}, {'href': 'http://localhost/federations/d936e2d5-b5d7-4e9a-a413-5d4226ba9448', 'rel': 'bookmark'}]}, {'uuid': '33a1c23a-b908-47e2-ad5b-d19778c44e4b', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/33a1c23a-b908-47e2-ad5b-d19778c44e4b', 'rel': 'self'}, {'href': 'http://localhost/federations/33a1c23a-b908-47e2-ad5b-d19778c44e4b', 'rel': 'bookmark'}]}, {'uuid': '601c0fdf-7cae-45b7-8eac-72aded44c787', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/601c0fdf-7cae-45b7-8eac-72aded44c787', 'rel': 'self'}, {'href': 'http://localhost/federations/601c0fdf-7cae-45b7-8eac-72aded44c787', 'rel': 'bookmark'}]}]} -GET: /v1/federations {} -GOT:{'federations': [{'uuid': '2b3ea3e7-df35-4bca-814f-d995b43f1462', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/2b3ea3e7-df35-4bca-814f-d995b43f1462', 'rel': 'self'}, {'href': 'http://localhost/federations/2b3ea3e7-df35-4bca-814f-d995b43f1462', 'rel': 'bookmark'}]}]} -POST: /v1/federations {'uuid': '9da220a3-70fc-413c-960b-0f6a2415160a', 'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing test-worker outside the allowed range: min_node_count = 4, max_node_count = None", "detail": "Resizing test-worker outside the allowed range: min_node_count = 4, max_node_count = None", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': '2139a781-b05e-41fa-b335-82209966765c'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.9 Vary: OpenStack-API-Version -{"uuid": "b7516016-1c2c-4fee-a2a5-8f90357c367a"} -POST: /v1/federations {'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:15:08.855992+00:00', 'updated_at': None} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 0, 'nodegroup': '0ccaca25-f62a-4c34-b3e5-fb6d758a6978'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "d02e1b69-2450-4403-890d-a72678fc145e"}magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_generate_uuid -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_generate_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_hostcluster_does_not_exist -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_hostcluster_does_not_exist ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_dns_zone_name -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_dns_zone_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_links -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_links ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_hostcluster_id -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_hostcluster_id ... ok - -POST: /v1/federations {'uuid': 'f3c37c87-278c-4a2f-a727-a14a2fd9a1bf', 'name': 'fake-name', 'hostcluster_id': 'fb5faef7-2f61-4a66-a982-4e59f6943ef3', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.10 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster fb5faef7-2f61-4a66-a982-4e59f6943ef3 could not be found", "detail": "Cluster fb5faef7-2f61-4a66-a982-4e59f6943ef3 could not be found.", "links": []}]} -POST: /v1/federations {'uuid': 'f10d5c00-2bc2-44e9-86c4-f0c775305f1f', 'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 0, 'nodegroup': '3548027a-44bb-483a-b287-6bcc8f24497d'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.9 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Please specify a `properties` dict for the federation", "detail": "Please specify a `properties` dict for the federation.", "links": []}]} -POST: /v1/federations {'uuid': '8d9e7b19-2e2c-4219-8fbc-e4694c2f6305', 'name': 'fake-name', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request -Content-Type: application/json +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a nodegroup to zero is not supported in the provided microversion", "detail": "Resizing a nodegroup to zero is not supported in the provided microversion.", "links": []}]} +DELETE: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 +GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "No hostcluster specified", "detail": "No hostcluster specified. Please specify a hostcluster_id.", "links": []}]} -POST: /v1/federations {'uuid': '693961f1-f019-4eaf-979e-13aad6838a22', 'name': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request + +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'. Value should have a maximum character requirement of 242", "links": []}]} -POST: /v1/federations {'uuid': '96d423ba-1321-4d5a-acc0-702117842a77', 'name': '123456', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request -Content-Type: application/json +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found", "detail": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.", "links": []}]} +DELETE: /v1/clustertemplates/a06eb52f-4fa7-498a-9454-032f61706e0f +GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '123456'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} -POST: /v1/federations {'uuid': 'eb5a8c55-2e09-4509-9ff2-1fb925b446e9', 'name': '123456test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request + +DELETE: /v1/clustertemplates/a31e3731-7d4f-4ea0-8780-4604ab55d6a0 +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '123456test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} -POST: /v1/federations {'uuid': '499b3c37-9c49-4a82-8693-e3b072881645', 'name': '-test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate a31e3731-7d4f-4ea0-8780-4604ab55d6a0 could not be found", "detail": "ClusterTemplate a31e3731-7d4f-4ea0-8780-4604ab55d6a0 could not be found.", "links": []}]} +DELETE: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '-test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} -POST: /v1/federations {'uuid': 'ddf44dbe-1e4c-4b4a-9cbd-6709424032d6', 'name': '.test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request -Content-Type: application/json +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters", "detail": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters.", "links": []}]} +DELETE: /v1/clustertemplates/clustermodel1 +GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '.test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} -POST: /v1/federations {'uuid': '6be07b94-791f-44ae-b730-2b9192f5944b', 'name': '_test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request + +DELETE: /v1/clustertemplates/not_found +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '_test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} -POST: /v1/federations {'uuid': '7f33726f-255c-495d-9af6-ccf60f8fec68', 'name': '', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate not_found could not be found", "detail": "ClusterTemplate not_found could not be found.", "links": []}]} +DELETE: /v1/clustertemplates/test_cluster_template +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: ''. Value should have a minimum character requirement of 1", "links": []}]}magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_with_invalid_name -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_with_invalid_name ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_without_name -magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_without_name ... ok -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_empty -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_empty ... ok -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_many -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_many ... ok -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_one -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceObject.test_msvc_obj_fields_filtering -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceObject.test_msvc_obj_fields_filtering ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_by_name_not_found -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_by_name_not_found ... ok +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple ClusterTemplates exist with same name", "detail": "Multiple ClusterTemplates exist with same name. Please use the ClusterTemplate uuid instead.", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/foo', 'value': 'bar', 'op': 'add'}]magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_add_root_non_existent +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_add_root_non_existent ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cinder_csi_disabled +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cinder_csi_disabled ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_create_cluster_template_with_no_os_distro_image +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_create_cluster_template_with_no_os_distro_image ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cluster_template_name +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cluster_template_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_mandatory_property_fail +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_mandatory_property_fail ... ok -GET: /v1/clusters/7ae3561c-7b95-4d33-b02b-2eece0decd30 {} -GOT:Response: 404 Not Found +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 [{'path': '/node_count', 'value': 0, 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.9 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 7ae3561c-7b95-4d33-b02b-2eece0decd30 could not be found", "detail": "Cluster 7ae3561c-7b95-4d33-b02b-2eece0decd30 could not be found.", "links": []}]} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_FAILED', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'faults': {'test-master': 'fake_reason'}, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:45.872477+00:00', 'updated_at': None} -GET: /v1/clusters/dc9042bb-f389-461c-9812-dac4ab5bb12b {} -GOT:{'uuid': 'dc9042bb-f389-461c-9812-dac4ab5bb12b', 'name': 'cluster1', 'cluster_template_id': '58643ec5-ed96-46ef-9211-10a5710e6f72', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/dc9042bb-f389-461c-9812-dac4ab5bb12b', 'rel': 'self'}, {'href': 'http://localhost/clusters/dc9042bb-f389-461c-9812-dac4ab5bb12b', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {'label2': 'value2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:45.924430+00:00', 'updated_at': None} -GET: /v1/clusters/6e516096-9287-4312-ae57-fe27969e77c9 {} -GOT:{'uuid': '6e516096-9287-4312-ae57-fe27969e77c9', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/6e516096-9287-4312-ae57-fe27969e77c9', 'rel': 'self'}, {'href': 'http://localhost/clusters/6e516096-9287-4312-ae57-fe27969e77c9', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:45.968270+00:00', 'updated_at': None} -GET: /v1/clusters/6e516096-9287-4312-ae57-fe27969e77c9 {} -GOT:{'uuid': '6e516096-9287-4312-ae57-fe27969e77c9', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/6e516096-9287-4312-ae57-fe27969e77c9', 'rel': 'self'}, {'href': 'http://localhost/clusters/6e516096-9287-4312-ae57-fe27969e77c9', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:45.968270+00:00', 'updated_at': None} -GET: /clusters/6e516096-9287-4312-ae57-fe27969e77c9 {} -GOT:{'uuid': '6e516096-9287-4312-ae57-fe27969e77c9', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/6e516096-9287-4312-ae57-fe27969e77c9', 'rel': 'self'}, {'href': 'http://localhost/clusters/6e516096-9287-4312-ae57-fe27969e77c9', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:45.968270+00:00', 'updated_at': None} -GET: /v1/clusters {} -GOT:{'clusters': [{'uuid': '96987548-9d7b-451b-be34-b065b7836b80', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/96987548-9d7b-451b-be34-b065b7836b80', 'rel': 'self'}, {'href': 'http://localhost/clusters/96987548-9d7b-451b-be34-b065b7836b80', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'ec2aef12-f249-4b1c-be62-36dea1808b73', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/ec2aef12-f249-4b1c-be62-36dea1808b73', 'rel': 'self'}, {'href': 'http://localhost/clusters/ec2aef12-f249-4b1c-be62-36dea1808b73', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '114d4f69-a2e2-4d13-bcbc-81a541ca60be', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/114d4f69-a2e2-4d13-bcbc-81a541ca60be', 'rel': 'self'}, {'href': 'http://localhost/clusters/114d4f69-a2e2-4d13-bcbc-81a541ca60be', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': '780ea3d1-be80-459d-a596-a87829a97360', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/780ea3d1-be80-459d-a596-a87829a97360', 'rel': 'self'}, {'href': 'http://localhost/clusters/780ea3d1-be80-459d-a596-a87829a97360', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}, {'uuid': 'b5f98def-8544-4e33-afd8-1e94dbf05217', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/b5f98def-8544-4e33-afd8-1e94dbf05217', 'rel': 'self'}, {'href': 'http://localhost/clusters/b5f98def-8544-4e33-afd8-1e94dbf05217', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_many -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_many ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_one -magnum.tests.unit.api.controllers.v1.test_cluster.TestListCluster.test_one ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_doesnt_contain_id -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_doesnt_contain_id ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_default_nodegroup -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_default_nodegroup ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_generate_uuid -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_generate_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_no_cluster_template_id -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_no_cluster_template_id ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_resource_limit_reached -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_resource_limit_reached ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_as_admin -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_set_project_id_and_user_id -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_set_project_id_and_user_id ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_by_name -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cinder_csi_disabled -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cinder_csi_disabled ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_not_found -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_wrong_microversion -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_wrong_microversion ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all ... ok - -GET: /v1/clusters {} -GOT:{'clusters': [{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 3, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'health_status': None, 'merge_labels': False}]} +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a nodegroup to zero is not supported in the provided microversion", "detail": "Resizing a nodegroup to zero is not supported in the provided microversion.", "links": []}]} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11214,7 +11209,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "117fee28-4261-4f22-bc5c-08cae5a2259f"} +{"uuid": "873b47f6-d26c-4959-a00f-8753a8663c84"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11222,7 +11217,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "7f6b9b0b-dbd5-47b7-8004-ec8c42613be2"} +{"uuid": "2050cab4-2dec-46a4-bbd7-13776101a38e"} POST: /v1/clusters {'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11230,7 +11225,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "b92b3224-88ee-4477-a125-c624de3c937f"} +{"uuid": "a93921f6-b2a8-4e62-9a44-a0d3a12c2f12"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -11246,7 +11241,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "a5af0a5a-1e79-41cd-9c71-2871aa14a89d"} +{"uuid": "3c4deed7-2aff-402b-a371-e23ea452a57e"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 403 Forbidden Content-Type: application/json @@ -11262,7 +11257,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "38f38618-a31c-47b6-8658-38c36758bd25"} +{"uuid": "26b304da-f135-44f0-94d4-ce655c4a1d1b"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': {'cinder_csi_enabled': 'false'}, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11270,7 +11265,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "269dc618-f438-4048-bc93-8e2aae7335c1"} +{"uuid": "9b5a6dd2-a1d6-4365-be0e-76df902fd447"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'clustermodel1', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11278,128 +11273,142 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "94e17f4f-9264-4169-8da0-da3e797dbf44"}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cluster_template_name -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_cluster_template_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_docker_volume_size +{"uuid": "24e25301-0502-4b6a-a0b2-752f14214d09"} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': 3, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_docker_volume_size magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_docker_volume_size ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_non_existent_property_fail +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_non_existent_property_fail ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_flavor_id magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_flavor_id ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_as_admin -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_as_admin ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_docker_volume_size magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_docker_volume_size ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_ext_network -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_ext_network ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_flavor -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_flavor ... ok -POST: /v1/federations {'uuid': '60d8c8b5-690d-4296-aacf-99edfe768eca', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} -GOT:Response: 202 Accepted +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "0a8915a0-22da-49b4-9aee-4bc8c66b94d7"} -GET: /v1/mservices {} -GOT:{'mservices': []} -GET: /v1/mservices {} -GOT:{'mservices': [{'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 1, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 2, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 3, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 4, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 5, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}]} -GET: /v1/mservices {} -GOT:{'mservices': [{'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 1, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/not-there -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Adding a new attribute /foo to the root of the resource is not allowed", "detail": "Adding a new attribute /foo to the root of the resource is not allowed.", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/image_id', 'value': 'img', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup not-there could not be found", "detail": "Nodegroup not-there could not be found.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/9fff10e0-aece-475b-9b2b-51d553232ba2 +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "img", "detail": "img", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/image_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Deleting a default nodegroup is not supported", "detail": "Deleting a default nodegroup is not supported.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 -GOT:Response: 204 No Content +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/image_id' is a mandatory attribute and can not be removed", "detail": "'/image_id' is a mandatory attribute and can not be removed", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/coe', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version - -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/coe' is a mandatory attribute and can not be removed", "detail": "'/coe' is a mandatory attribute and can not be removed", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/external_network_id', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup 483203a3-dbee-4a9c-9d65-9820512f4df8 could not be found", "detail": "Nodegroup 483203a3-dbee-4a9c-9d65-9820512f4df8 could not be found.", "links": []}]} -DELETE: /v1/clusters/8c40e962-28dd-45fe-96b9-43740cc024fc/nodegroups/3d05f3a9-3735-4ece-b696-525e744ba31b -GOT:Response: 204 No Content +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/external_network_id' is a mandatory attribute and can not be removed", "detail": "'/external_network_id' is a mandatory attribute and can not be removed", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/server_type', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version - -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 -GOT:Response: 204 No Content +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/server_type' is a mandatory attribute and can not be removed", "detail": "'/server_type' is a mandatory attribute and can not be removed", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/tls_disabled', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version - -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 {} -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/tls_disabled' is a mandatory attribute and can not be removed", "detail": "'/tls_disabled' is a mandatory attribute and can not be removed", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup nodegroup1 could not be found", "detail": "Nodegroup nodegroup1 could not be found.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/a006a71a-3acb-46ff-bd88-beb71a3252b3 -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/public' is a mandatory attribute and can not be removed", "detail": "'/public' is a mandatory attribute and can not be removed", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/registry_enabled', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup a006a71a-3acb-46ff-bd88-beb71a3252b3 could not be found", "detail": "Nodegroup a006a71a-3acb-46ff-bd88-beb71a3252b3 could not be found.", "links": []}]} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 -GOT:Response: 406 Not Acceptable +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/registry_enabled' is a mandatory attribute and can not be removed", "detail": "'/registry_enabled' is a mandatory attribute and can not be removed", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/cluster_distro', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} -GET: /v1/clusters/165c0213-810e-40d0-8260-9b5d0fa40d01/nodegroups {} -GOT:{'nodegroups': [{'uuid': '3cd6023e-98c2-446d-b4ef-864f4fa84315', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '599141f3-5def-4dbb-b6d1-60f1d6ea4254', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} -GET: /v1/clusters/d8734977-ec3d-4e6f-90a2-e403eec33b07/nodegroups {} -GOT:{'nodegroups': [{'uuid': '4168e0af-04c9-450c-a6dc-f5adc77e05aa', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '2ef4702b-9054-4855-81ae-6cac3c1681dc', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} -GET: /v1/clusters/cluster1/nodegroups {} -GOT:{'nodegroups': [{'uuid': '664e334c-d910-4e7c-94de-cfd8c9ddc6d9', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '94ba8967-fe80-475a-8d11-b49caad9e6c5', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} -GET: /v1/clusters/cluster1/nodegroups {} -GOT:{'nodegroups': [{'uuid': '77ed95de-3821-4f80-a991-e76cd87778fa', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': 'd5a83912-fc16-482f-a205-1c71392f143a', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name_non_default_ngs -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name_non_default_ngs ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_non_existent_role -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_non_existent_role ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_role -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_role ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_non_existent_cluster -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_non_existent_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_with_pagination_marker ... ok +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/cluster_distro' is a mandatory attribute and can not be removed", "detail": "'/cluster_distro' is a mandatory attribute and can not be removed", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/network_driver', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/network_driver' is a mandatory attribute and can not be removed", "detail": "'/network_driver' is a mandatory attribute and can not be removed", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/non-existent', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'", "detail": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'. Reason: can't remove a non-existent object 'non-existent'", "links": []}]} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:15:09.772101+00:00', 'updated_at': None} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/dns_nameserver', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": null, "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:15:09.772101+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_singular +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_singular ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_uuid +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_ext_network +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_ext_network ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_external_network_id +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_external_network_id ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_flavor +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_flavor ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_flavor_id +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_flavor_id ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_image_id +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_image_id ... ok -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': 3, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "69028207-1131-46f3-8b5d-dc9d71d642ef"} +{"uuid": "9f226bb0-28f8-4285-9fb5-9e8fe8d661df"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': 'm2.small', 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11407,7 +11416,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "bb763799-bc99-4fc1-9f64-f3408a8f379f"} +{"uuid": "8d16608e-1ad0-4077-a50c-16b33d16d33a"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': -1, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -11456,22 +11465,20 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 400, "title": "test-flavor", "detail": "test-flavor", "links": []}]} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_keypair -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_keypair ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_labels -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_labels ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_wrong_microversion -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_wrong_microversion ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one ... ok - +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "test-key", "detail": "test-key", "links": []}]} +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "test-key", "detail": "test-key", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_keypair +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_keypair ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_labels +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_labels ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_keypair_id +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_keypair_id ... ok + POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': 'invalid', 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -11527,34 +11534,148 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '_test_cluster'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_name +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '_test_cluster'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': '', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_name magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_invalid_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_singular +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_singular ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_keypair magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_keypair ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_labels magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_labels ... ok + +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': None, 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:15:09.772101+00:00', 'updated_at': '2026-01-22T07:15:09.829197+00:00'} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/uuid' is an internal attribute and can not be updated", "detail": "'/uuid' is an internal attribute and can not be updated", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/external_network_id', 'value': 'aaa', 'op': 'replace'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "aaa", "detail": "aaa", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/flavor_id', 'value': 'aaa', 'op': 'replace'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "aaa", "detail": "aaa", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/image_id', 'value': 'aaa', 'op': 'replace'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "aaa", "detail": "aaa", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/keypair_id', 'value': 'aaa', 'op': 'replace'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "aaa", "detail": "aaa", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:15:10.156109+00:00", "updated_at": null} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_B', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:15:10.156109+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +PATCH: /v1/clustertemplates/0177755f-7540-4ba0-9661-6513518c2bcd [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "0177755f-7540-4ba0-9661-6513518c2bcd", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "ubuntu", "flavor_id": "m1.small", "master_flavor_id": "m1.small", "dns_nameserver": "8.8.1.1", "keypair_id": "keypair1", "external_network_id": "d1f02cfb-d27f-4068-9332-84d907cb0e2e", "fixed_network": "private", "fixed_subnet": "private-subnet", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/0177755f-7540-4ba0-9661-6513518c2bcd", "rel": "self"}, {"href": "http://localhost/clustertemplates/0177755f-7540-4ba0-9661-6513518c2bcd", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": null, "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "0177755f-7540-4ba0-9661-6513518c2bcd", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:15:10.246147+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_as_admin +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_as_admin ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_master_count_zero magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_master_count_zero ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_hidden_with_cluster_allow_update +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_hidden_with_cluster_allow_update ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_master_flavor_id magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_master_flavor_id ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_name_with_cluster +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_name_with_cluster ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_merge_labels magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_merge_labels ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_as_admin -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_as_admin ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_merge_labels_no_labels magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_merge_labels_no_labels ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_replace_labels_success +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_replace_labels_success ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_multi_images_same_name magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_multi_images_same_name ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default_skipped_labels -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default_skipped_labels ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_multi_keypair_same_name magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_multi_keypair_same_name ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_existent_ng -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_existent_ng ... ok -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': '', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": true, "tags": "", "driver": "", "created_at": "2026-01-22T07:15:10.322835+00:00", "updated_at": null} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': True, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:15:10.322835+00:00', 'updated_at': '2026-01-22T07:15:10.380801+00:00'} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:15:10.424043+00:00", "updated_at": null} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/labels', 'value': "{'etcd_volume_size': '1'}", 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"etcd_volume_size": "1"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:15:10.515333+00:00", "updated_at": null} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'etcd_volume_size': '1'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:15:10.515333+00:00', 'updated_at': '2026-01-22T07:15:10.563530+00:00'} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/network_driver', 'value': 'flannel', 'op': 'replace'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters", "detail": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters.", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": true, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:15:10.695909+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster_allow_update +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster_allow_update ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_devicemapper +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_devicemapper ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_fail +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_fail ... ok + GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -11569,7 +11690,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "f59b6a0d-8bd2-4bae-9e9e-00be0c40c543"} +{"uuid": "95fa88b5-24fe-422e-bcbd-57fa6523deae"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': {'key': 'value'}, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11577,7 +11698,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "3e3d366a-d7ad-4c99-8c51-271138df855f"} +{"uuid": "5a8cb393-9fc3-401d-ab92-f3a9df6b3acb"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 0, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -11593,7 +11714,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "5263bdc2-0366-46ec-8147-53db553008dd"} +{"uuid": "195dec2b-71f0-405e-a04a-1f9cc5338eff"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': {'label2': 'value3', 'label4': 'value4'}, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': True} GOT:Response: 202 Accepted Content-Type: application/json @@ -11601,7 +11722,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "82c823d0-c419-4a37-923c-336af1102173"} +{"uuid": "610ca892-f16b-46aa-bcbc-937af4b986c7"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': True} GOT:Response: 202 Accepted Content-Type: application/json @@ -11609,7 +11730,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "7ce1c3b7-d020-4a10-9433-465d309eaa14"} +{"uuid": "74149581-f0b9-433f-8c59-c863bdb51345"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 409 Conflict Content-Type: application/json @@ -11626,94 +11747,93 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 409, "title": "keypair2", "detail": "keypair2", "links": []}]} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'foo', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': False, 'node_count': 3, 'master_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_lb_multi_node +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'foo', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': False, 'node_count': 3, 'master_count': 3, 'merge_labels': False} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "master_count must be 1 when master_lb_enabled is False", "detail": "master_count must be 1 when master_lb_enabled is False", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_lb_multi_node magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_lb_multi_node ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_success +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_success ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_not_found ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_lb_one_node magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_lb_one_node ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_fail +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_fail ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_master_count magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_master_count ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_node_count magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_node_count ... ok -GET: /v1/clusters/cluster1/nodegroups?role=non-existent {} -GOT:{'nodegroups': []} -GET: /v1/clusters/cluster1/nodegroups?role=master {} -GOT:{'nodegroups': [{'uuid': 'b995608c-b759-4c0f-a797-d8a62e537658', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} -GET: /v1/clusters/cluster1/nodegroups?role=worker {} -GOT:{'nodegroups': [{'uuid': '029f2167-e1e6-4a8e-aec8-37f245767aff', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} -GET: /v1/clusters/not-here/nodegroups {} -GOT:Response: 404 Not Found +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': True, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:15:10.695909+00:00', 'updated_at': '2026-01-22T07:15:10.790120+00:00'} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/docker_storage_driver', 'value': 'devicemapper', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not-here could not be found", "detail": "Cluster not-here could not be found.", "links": []}]} -GET: /v1/clusters/0d889487-7901-4175-88f4-711c44f66931/nodegroups?limit=1 {} -GOT:{'nodegroups': [{'uuid': '32038744-ed86-4d52-8cc8-e555a8ce57e0', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}], 'next': 'http://localhost/v1/clusters/0d889487-7901-4175-88f4-711c44f66931/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=32038744-ed86-4d52-8cc8-e555a8ce57e0'} -GET: /v1/clusters/0d889487-7901-4175-88f4-711c44f66931/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=32038744-ed86-4d52-8cc8-e555a8ce57e0 {} -GOT:{'nodegroups': [{'uuid': '54df6b1b-7528-4024-9a74-a5b07dc8bf17', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}], 'next': 'http://localhost/v1/clusters/0d889487-7901-4175-88f4-711c44f66931/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=54df6b1b-7528-4024-9a74-a5b07dc8bf17'} -GET: /v1/clusters/0d889487-7901-4175-88f4-711c44f66931/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=54df6b1b-7528-4024-9a74-a5b07dc8bf17 {} -GOT:{'nodegroups': []} -GET: /v1/clusters/274c9e2f-09dc-4a58-b851-8759b1eb535f/nodegroups/ {} -GOT:Response: 406 Not Acceptable +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:15:10.820477+00:00", "updated_at": null} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}] +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} -GET: /v1/clusters/0cae1abe-d1a8-4605-ad8b-3b2c12757c35/nodegroups/ff8e3676-fbb0-45f3-9032-f6ec80da87ab {} -GOT:{'id': 1, 'uuid': 'ff8e3676-fbb0-45f3-9032-f6ec80da87ab', 'name': 'test-worker', 'cluster_id': '0cae1abe-d1a8-4605-ad8b-3b2c12757c35', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/0cae1abe-d1a8-4605-ad8b-3b2c12757c35/nodegroups/ff8e3676-fbb0-45f3-9032-f6ec80da87ab', 'rel': 'self'}, {'href': 'http://localhost/clusters/0cae1abe-d1a8-4605-ad8b-3b2c12757c35/nodegroups/ff8e3676-fbb0-45f3-9032-f6ec80da87ab', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': 'test_image', 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:46.812079+00:00', 'updated_at': None} -GET: /v1/clusters/49626ce1-91af-4a5b-8093-bdd471d990ab/nodegroups/225d6a3e-fa43-4fc8-9904-75a4b589f3be {} -GOT:{'id': 3, 'uuid': '225d6a3e-fa43-4fc8-9904-75a4b589f3be', 'name': 'test-worker', 'cluster_id': '49626ce1-91af-4a5b-8093-bdd471d990ab', 'project_id': '49626ce1-91af-4a5b-8093-bdd471d990ab', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/49626ce1-91af-4a5b-8093-bdd471d990ab/nodegroups/225d6a3e-fa43-4fc8-9904-75a4b589f3be', 'rel': 'self'}, {'href': 'http://localhost/clusters/49626ce1-91af-4a5b-8093-bdd471d990ab/nodegroups/225d6a3e-fa43-4fc8-9904-75a4b589f3be', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': 'test_image', 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:46.857457+00:00', 'updated_at': None} -GET: /v1/clusters/994d7b23-a250-4ba8-91eb-bb6ce9b3fb39/nodegroups/non_default_ng {} -GOT:{'id': 3, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'cluster_id': '994d7b23-a250-4ba8-91eb-bb6ce9b3fb39', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label2': 'value2', 'label4': 'value4'}, 'links': [{'href': 'http://localhost/v1/clusters/994d7b23-a250-4ba8-91eb-bb6ce9b3fb39/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/994d7b23-a250-4ba8-91eb-bb6ce9b3fb39/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:46.901211+00:00', 'updated_at': None} -GET: /v1/clusters/f0d7abe7-f11c-4a28-ad90-a0f45038fbca/nodegroups/non_default_ng {} -GOT:{'id': 3, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'cluster_id': 'f0d7abe7-f11c-4a28-ad90-a0f45038fbca', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'links': [{'href': 'http://localhost/v1/clusters/f0d7abe7-f11c-4a28-ad90-a0f45038fbca/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/f0d7abe7-f11c-4a28-ad90-a0f45038fbca/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {'label2': 'value2'}, 'created_at': '2026-01-22T07:06:46.938354+00:00', 'updated_at': None} -GET: /v1/clusters/a66dd498-a28e-412d-982f-7f4629e6dc47/nodegroups/not-here {} +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": true, "tags": "", "driver": "", "created_at": "2026-01-22T07:15:10.893506+00:00", "updated_at": null} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': True, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:15:10.893506+00:00', 'updated_at': '2026-01-22T07:15:10.910146+00:00'} +PATCH: /v1/clustertemplates/2c34db2a-0571-49a8-a5e0-a54b56bb1c2a [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup not-here could not be found", "detail": "Nodegroup not-here could not be found.", "links": []}]} -GET: /v1/clusters/f0b110ea-324f-4429-bde5-7cef97a9c699/nodegroups/b3532865-2865-4692-907c-397bfd00082e {} -GOT:Response: 406 Not Acceptable +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate 2c34db2a-0571-49a8-a5e0-a54b56bb1c2a could not be found", "detail": "ClusterTemplate 2c34db2a-0571-49a8-a5e0-a54b56bb1c2a could not be found.", "links": []}]} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_wrong_microversion -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_wrong_microversion ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodegroupObject.test_nodegroup_init -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodegroupObject.test_nodegroup_init ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_master_ng -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_master_ng ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_cluster_no_api_address -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_cluster_no_api_address ... ok +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.1 +Vary: OpenStack-API-Version +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": true, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:15:11.179882+00:00", "updated_at": null} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_success +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_success ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_timeout magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_no_timeout ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_same_name -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_same_name ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestFederationObject.test_federation_init +magnum.tests.unit.api.controllers.v1.test_federation.TestFederationObject.test_federation_init ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_node_count_negative magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_node_count_negative ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_non_existent_cluster_template_id magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_non_existent_cluster_template_id ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_labels -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_labels ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_non_existent_cluster_template_name magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_non_existent_cluster_template_name ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_generate_uuid +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_generate_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_hostcluster_does_not_exist +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_hostcluster_does_not_exist ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_nonexist_image magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_nonexist_image ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels_no_labels -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels_no_labels ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_wrong_microversion -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_wrong_microversion ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_dns_zone_name +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_dns_zone_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_on_os_distro_image +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_on_os_distro_image ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_hostcluster_id +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_no_hostcluster_id ... ok -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "master_count must be 1 when master_lb_enabled is False", "detail": "master_count must be 1 when master_lb_enabled is False", "links": []}]} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'foo', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 1, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11721,7 +11841,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "4b9d79ba-f38c-4adf-bba0-df77184fd428"} +{"uuid": "cd6ad024-318b-45ee-807a-57c7dc4b5509"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11729,7 +11849,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "aa2329b0-71a1-4254-9929-0451ba405fa7"} +{"uuid": "fca02298-d9dc-4e32-a93f-1c46beed2920"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11737,7 +11857,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "d88bfc8f-9387-40c2-ad98-974d0cbe508f"} +{"uuid": "d40ed8f5-aceb-4bf0-91ba-0d759ff60217"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11745,7 +11865,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "90a3567c-4300-46e3-8cdc-b7cf32ccf534"} +{"uuid": "ddee4a2c-1367-41c7-bcb3-ec24673ab3d2"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': -1, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -11754,14 +11874,14 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute node_count", "detail": "Invalid input for field/attribute node_count. Value: '-1'. Value should be greater or equal to 0", "links": []}]} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'a22afe0b-7e01-4ffc-a04d-0f02a4d4a3a8', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': '57284556-95c0-4275-b261-ef02fc92d346', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate a22afe0b-7e01-4ffc-a04d-0f02a4d4a3a8 could not be found", "detail": "ClusterTemplate a22afe0b-7e01-4ffc-a04d-0f02a4d4a3a8 could not be found.", "links": []}]} +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate 57284556-95c0-4275-b261-ef02fc92d346 could not be found", "detail": "ClusterTemplate 57284556-95c0-4275-b261-ef02fc92d346 could not be found.", "links": []}]} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'notfound', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -11785,154 +11905,105 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "img", "detail": "img", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_on_os_distro_image -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_on_os_distro_image ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_negative +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "img", "detail": "img", "links": []}]} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': -1, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_negative magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_negative ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_none magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_none ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_zero -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_zero ... ok -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'master', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Creating master nodegroups is currently not supported", "detail": "Creating master nodegroups is currently not supported.", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Cluster API address is not available yet", "detail": "Cluster API address is not available yet", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'test-master', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "A node group with name test-master already exists in the cluster cluster1", "detail": "A node group with name test-master already exists in the cluster cluster1.", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label3': 'value3'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"id": 12, "uuid": "b1fc630e-1d28-4d5c-9705-4b752f1f5e88", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label3": "value3"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/b1fc630e-1d28-4d5c-9705-4b752f1f5e88", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/b1fc630e-1d28-4d5c-9705-4b752f1f5e88", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {"label3": "value3"}, "labels_skipped": {"label1": "value1", "label2": "value2"}, "created_at": "2026-01-22T07:06:47.161441+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': True} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': True, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:15:11.179882+00:00', 'updated_at': '2026-01-22T07:15:11.216199+00:00'} +POST: /v1/federations {'uuid': '730bab8f-9f23-45c8-95ef-43d44141eb6b', 'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"id": 12, "uuid": "8a2f67c1-f7dd-4014-bada-c5bff8c1b256", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value3", "label2": "value2", "label4": "value4"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/8a2f67c1-f7dd-4014-bada-c5bff8c1b256", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/8a2f67c1-f7dd-4014-bada-c5bff8c1b256", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {"label1": "value1"}, "labels_added": {"label4": "value4"}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:47.202259+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': True} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "97a30db2-34e0-411d-9cd3-b0869bfe4adc", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value1", "label2": "value2"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/97a30db2-34e0-411d-9cd3-b0869bfe4adc", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/97a30db2-34e0-411d-9cd3-b0869bfe4adc", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:47.242804+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'new_ng', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +{"uuid": "d456b276-40bc-4c5f-a51d-f5de7a49795e"} +POST: /v1/federations {'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "361acdaf-bd0e-4657-968b-63334c989aeb", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/361acdaf-bd0e-4657-968b-63334c989aeb", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/361acdaf-bd0e-4657-968b-63334c989aeb", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_invalid_node_count -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_invalid_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_only_name -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_only_name ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_flavor -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_flavor ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_image_id -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_image_id ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_labels -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_labels ... ok - -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 7, 'role': 'worker', 'max_node_count': 5, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 409 Conflict +{"uuid": "402da545-7dac-4664-9770-8d099352f112"} +POST: /v1/federations {'uuid': 'b9986acd-2686-452a-9d84-d36526114106', 'name': 'fake-name', 'hostcluster_id': '8a806cc2-c7fc-4beb-9bc9-5b1c661d6fa0', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "max_node_count for nodegroup1 is invalid (node_count (7) should be less or equal to max_node_count (5))", "detail": "max_node_count for nodegroup1 is invalid (node_count (7) should be less or equal to max_node_count (5)).", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 2, 'role': 'worker', 'max_node_count': None, 'min_node_count': 3, 'merge_labels': False} -GOT:Response: 409 Conflict +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 8a806cc2-c7fc-4beb-9bc9-5b1c661d6fa0 could not be found", "detail": "Cluster 8a806cc2-c7fc-4beb-9bc9-5b1c661d6fa0 could not be found.", "links": []}]} +POST: /v1/federations {'uuid': '793bb359-6bcd-4797-87ab-e104f33359b0', 'name': 'fake-name', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2))", "detail": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2)).", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'name': 'test_ng'} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Please specify a `properties` dict for the federation", "detail": "Please specify a `properties` dict for the federation.", "links": []}]} +POST: /v1/federations {'uuid': '32ef3939-420f-496c-b516-e016def75068', 'name': 'fake-name', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 3, "uuid": "90b115a5-946b-4bb9-8cc8-45c971014123", "name": "test_ng", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/90b115a5-946b-4bb9-8cc8-45c971014123", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/90b115a5-946b-4bb9-8cc8-45c971014123", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 1, "role": "worker", "min_node_count": 0, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': 'test_flavor', 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "No hostcluster specified", "detail": "No hostcluster specified. Please specify a hostcluster_id.", "links": []}]} +POST: /v1/federations {'uuid': '5f4daffb-b318-4e3c-b0f2-09917ed4df45', 'name': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "548472df-e41f-4d70-830c-0f67d36c34ba", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/548472df-e41f-4d70-830c-0f67d36c34ba", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/548472df-e41f-4d70-830c-0f67d36c34ba", "rel": "bookmark"}], "flavor_id": "test_flavor", "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'. Value should have a maximum character requirement of 242", "links": []}]} +POST: /v1/federations {'uuid': '48d806c9-e9d2-4198-ba6b-9c04296426fc', 'name': '123456', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "5aced91b-e5e9-467f-a937-68800e320efe", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/5aced91b-e5e9-467f-a937-68800e320efe", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/5aced91b-e5e9-467f-a937-68800e320efe", "rel": "bookmark"}], "flavor_id": null, "image_id": "test_image", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label1': 'value1'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '123456'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} +POST: /v1/federations {'uuid': 'b958a3a1-4ea8-4843-b050-08b63f4892a8', 'name': '123456test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "f81b1d4f-8df1-4593-ab05-eb5c1eefb389", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value1"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/f81b1d4f-8df1-4593-ab05-eb5c1eefb389", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/f81b1d4f-8df1-4593-ab05-eb5c1eefb389", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {"label1": "value1"}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': 5, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '123456test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} +POST: /v1/federations {'uuid': '30e1e477-6c18-497c-b3c3-195e8578eb54', 'name': '-test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "75edae90-94c0-4f2d-bdb6-47c658614829", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/75edae90-94c0-4f2d-bdb6-47c658614829", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/75edae90-94c0-4f2d-bdb6-47c658614829", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": 5, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_max_node_count -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_max_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_role -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_role ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_zero_nodes -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_zero_nodes ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_without_node_count -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_without_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota ... ok +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '-test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]}magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_with_invalid_name +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_with_invalid_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_zero +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_timeout_zero ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_without_name +magnum.tests.unit.api.controllers.v1.test_federation.TestPost.test_create_federation_without_name ... ok +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_empty +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_empty ... ok +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_many +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_many ... ok +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_one +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceController.test_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceEnforcement.test_policy_disallow_get_all +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceEnforcement.test_policy_disallow_get_all ... ok +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceObject.test_msvc_obj_fields_filtering +magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceObject.test_msvc_obj_fields_filtering ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodegroupObject.test_nodegroup_init +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodegroupObject.test_nodegroup_init ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_master_ng +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_master_ng ... ok -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': -1, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -11947,7 +12018,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "caa93424-eca5-4041-8b51-202b38665215"} +{"uuid": "3d4b6894-860a-4322-b197-9656bd79fd5b"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 0, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11955,7 +12026,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "104f69b4-4526-41f3-be7a-2bcd16381a37"} +{"uuid": "e46ce1e6-63d1-47a6-8a85-3aa001e6d8a4"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'test_cluster123456', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11963,7 +12034,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "3d048d29-483d-4278-812e-ff67dd110f9b"} +{"uuid": "adbb6a3a-6fe0-41e7-a4c8-bafe61c38d11"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'test-cluster', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11971,7 +12042,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "c5fb5dd9-09ad-4a06-9f26-93226e6e1a35"} +{"uuid": "1a7b5ba3-035b-4005-b818-af7b9a67829d"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'test.cluster', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11979,7 +12050,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "130c2458-fd8e-4aba-9c41-84f582381bac"} +{"uuid": "f55cc766-a388-4818-bf92-6abe7f533e24"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'testcluster.', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11987,7 +12058,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "a19279ef-5b3b-4f92-a068-5a06fa406010"} +{"uuid": "7d7b3d6a-5c77-4aae-80a8-5484cd4dc6a5"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'testcluster-', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -11995,7 +12066,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "12dc4527-8855-4531-bade-a09004388009"} +{"uuid": "9794d736-5127-4aa5-9222-73a4105a29ae"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'testcluster_', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -12003,7 +12074,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "17a57c29-201c-4044-8f3e-b2a251971e04"} +{"uuid": "0c975379-a178-48c8-9992-bb139887f6e3"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'test.-_cluster', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -12011,138 +12082,192 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "5b865c12-0b6e-4c24-afde-b9eabf1f8594"}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_valid_name +{"uuid": "ae735489-43cd-45e7-b808-e77f66c94281"} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'Testcluster', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_valid_name magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_valid_name ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_zero_node_count magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_zero_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_hard_limit -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_hard_limit ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_cluster_no_api_address +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_cluster_no_api_address ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_zero_node_count_fail magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_with_zero_node_count_fail ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_resource -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_resource ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_no_project_id -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_no_project_id ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_same_name +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_same_name ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_docker_volume_size magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_docker_volume_size ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_project_id_not_found -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_project_id_not_found ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_flavor_id magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_flavor_id ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_zero_quota -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_zero_quota ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_keypair -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_keypair ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_labels -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_labels ... ok -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'test-role', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted +POST: /v1/federations {'uuid': '3f4398c8-0d04-4264-b601-1356f8b79141', 'name': '.test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "f54a59f0-c889-4191-8e43-fc1d62124733", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/f54a59f0-c889-4191-8e43-fc1d62124733", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/f54a59f0-c889-4191-8e43-fc1d62124733", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "test-role", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 0, 'role': 'worker', 'max_node_count': None, 'min_node_count': 0, 'merge_labels': False} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '.test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} +POST: /v1/federations {'uuid': 'ea94ebea-a137-4ac2-b5e9-ad24730c7fea', 'name': '_test_federation', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "92cedd30-8e22-467a-be62-3f0f8640b4ec", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/92cedd30-8e22-467a-be62-3f0f8640b4ec", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/92cedd30-8e22-467a-be62-3f0f8640b4ec", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 0, "role": "worker", "min_node_count": 0, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: '_test_federation'. Value should match the pattern ^[a-zA-Z][a-zA-Z0-9_.-]*$", "links": []}]} +POST: /v1/federations {'uuid': '6d3d3417-8c72-48db-9d8e-b28ddbfdf5f1', 'name': '', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "3f30a9b6-5176-4745-a4e6-d241a3d9cbb5", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/3f30a9b6-5176-4745-a4e6-d241a3d9cbb5", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/3f30a9b6-5176-4745-a4e6-d241a3d9cbb5", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 1, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} -GOT:Response: 201 Created +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute name", "detail": "Invalid input for field/attribute name. Value: ''. Value should have a minimum character requirement of 1", "links": []}]} +POST: /v1/federations {'uuid': 'e6c9d2fd-717b-411f-b839-e9027bcd9192', 'hostcluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'member_ids': ['fake_member1', 'fake_member2'], 'properties': {'dns-zone': 'example.com.'}, 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.'} +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:47.688485+00:00", "updated_at": null} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': -10} -GOT:Response: 400 Bad Request +{"uuid": "f5b2f354-42b8-44d2-93e3-7479207411e8"} +GET: /v1/mservices {} +GOT:{'mservices': []} +GET: /v1/mservices {} +GOT:{'mservices': [{'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 1, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 2, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 3, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 4, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}, {'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 5, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}]} +GET: /v1/mservices {} +GOT:{'mservices': [{'host': 'fake-host', 'binary': 'magnum-conductor', 'state': 'up', 'id': 1, 'report_count': 13, 'disabled': False, 'disabled_reason': None, 'created_at': '2001-01-01T00:00:00+00:00', 'updated_at': '2001-01-01T00:00:00+00:00'}]} +GET: /v1/mservices {} +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute hard_limit", "detail": "Invalid input for field/attribute hard_limit. Value: '-10'. Value should be greater or equal to 0", "links": []}]} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'invalid-res', 'hard_limit': 10} +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow magnum-service:get_all to be performed", "detail": "Policy doesn't allow magnum-service:get_all to be performed.", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'master', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute resource", "detail": "Invalid input for field/attribute resource. Value: 'invalid-res'. Value should be one of: Cluster", "links": []}]} -POST: /v1/quotas {'id': 42, 'resource': 'Cluster', 'hard_limit': 10} -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Creating master nodegroups is currently not supported", "detail": "Creating master nodegroups is currently not supported.", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Must provide a valid project ID", "detail": "Must provide a valid project ID.", "links": []}]} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Cluster API address is not available yet", "detail": "Cluster API address is not available yet", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'test-master', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "The project_id fake_project could not be found", "detail": "The project_id fake_project could not be found.", "links": []}]} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 0} -GOT:Response: 201 Created +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "A node group with name test-master already exists in the cluster cluster1", "detail": "A node group with name test-master already exists in the cluster cluster1.", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label3': 'value3'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 0, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:47.770662+00:00", "updated_at": null} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} -GOT:Response: 201 Created +{"id": 12, "uuid": "32d6be8d-2ef3-4fad-8ed0-d90179c42903", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label3": "value3"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/32d6be8d-2ef3-4fad-8ed0-d90179c42903", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/32d6be8d-2ef3-4fad-8ed0-d90179c42903", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {"label3": "value3"}, "labels_skipped": {"label1": "value1", "label2": "value2"}, "created_at": "2026-01-22T07:15:12.396316+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_labels +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_labels ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_keypair +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_keypair ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels_no_labels +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_with_merge_labels_no_labels ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_wrong_microversion +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_ng_wrong_microversion ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_invalid_node_count +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_invalid_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_only_name +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_only_name ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_labels +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_labels ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_master_flavor_id +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_master_flavor_id ... ok + +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': True} +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:47.789815+00:00", "updated_at": null} -DELETE: /v1/quotas/fake_project/Cluster -GOT:Response: 204 No Content +{"id": 12, "uuid": "574123f4-0a29-4e78-89a2-c92eaa47e6ec", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value3", "label2": "value2", "label4": "value4"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/574123f4-0a29-4e78-89a2-c92eaa47e6ec", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/574123f4-0a29-4e78-89a2-c92eaa47e6ec", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {"label1": "value1"}, "labels_added": {"label4": "value4"}, "labels_skipped": {}, "created_at": "2026-01-22T07:15:12.504128+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': True} +GOT:Response: 202 Accepted +Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_delete_quota -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_delete_quota ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_empty -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_empty ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants_false -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants_false ... ok -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_master_flavor_id -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_master_flavor_id ... ok +{"id": 12, "uuid": "994b76bf-3692-45a6-8e02-208ced891e19", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value1", "label2": "value2"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/994b76bf-3692-45a6-8e02-208ced891e19", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/994b76bf-3692-45a6-8e02-208ced891e19", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:15:12.565700+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'new_ng', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "c3f6f455-7789-4efb-907a-06ebf85fa66f", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/c3f6f455-7789-4efb-907a-06ebf85fa66f", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/c3f6f455-7789-4efb-907a-06ebf85fa66f", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 7, 'role': 'worker', 'max_node_count': 5, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "max_node_count for nodegroup1 is invalid (node_count (7) should be less or equal to max_node_count (5))", "detail": "max_node_count for nodegroup1 is invalid (node_count (7) should be less or equal to max_node_count (5)).", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 2, 'role': 'worker', 'max_node_count': None, 'min_node_count': 3, 'merge_labels': False} +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2))", "detail": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2)).", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'name': 'test_ng'} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 3, "uuid": "708994d0-a3a8-4100-b149-428c08b1f69c", "name": "test_ng", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/708994d0-a3a8-4100-b149-428c08b1f69c", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/708994d0-a3a8-4100-b149-428c08b1f69c", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 1, "role": "worker", "min_node_count": 0, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': 'test_flavor', 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_flavor +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_flavor ... ok magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_merge_labels magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_merge_labels ... ok +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_name +magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_name ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_image_id +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_image_id ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_labels +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_labels ... ok -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'Testcluster', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "4e5f2d9d-e6bc-4e1d-8c1c-5ac44615a011"} +{"uuid": "bb3d2c02-c49e-4ea8-bbb1-1eb05c6ebbe0"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 0, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -12150,7 +12275,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.10 Vary: OpenStack-API-Version -{"uuid": "ff9edebc-7f61-4284-9eca-e8277a46b589"} +{"uuid": "f9cc8ac1-b2d0-4904-9370-8aeb4ae8b05e"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 0, 'master_count': 3, 'merge_labels': False} GOT:Response: 400 Bad Request Content-Type: application/json @@ -12166,7 +12291,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "65884a8b-03f8-49c2-b5fa-f0c34bd5a423"} +{"uuid": "250a7118-56ca-474e-8ead-4932d1d83b3b"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -12174,7 +12299,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "860ed811-3a7b-4d11-9cde-5f6e5a0ab7ed"} +{"uuid": "96c6d452-34ca-4656-8b8a-7e4200c7302c"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -12182,7 +12307,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "dae3733d-2c6d-46f7-8fa9-ffd062e56b4c"} +{"uuid": "5d8cfbb3-13b6-45d0-bed0-1a67000658ae"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -12190,7 +12315,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "936ec4a0-1a39-4234-aa90-7eefd5366cf6"} +{"uuid": "933b8432-780a-4a2c-8554-a01fa1feba38"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -12198,7 +12323,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "565b5aba-cd65-4716-a394-fed119bc1ba5"} +{"uuid": "6cbe2f49-e141-45b0-bcf2-00a1a5824551"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': {'label2': 'value3', 'label4': 'value4'}, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -12206,7 +12331,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "a35f32e7-1cdc-46b3-82f8-04e966485f9f"} +{"uuid": "10d4c171-14a4-43a9-ba23-f5e23c9f6beb"} POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json @@ -12214,193 +12339,97 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "98d20ff8-ebc2-4b10-9eaa-dac01efca607"}magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_name -magnum.tests.unit.api.controllers.v1.test_cluster.TestPost.test_create_cluster_without_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_master_nodegroup -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_master_nodegroup ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_greater_than_max -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_greater_than_max ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_with_pagination_marker -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_with_pagination_marker ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_less_than_min -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_node_count_less_than_min ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_not_all_tenants -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_not_all_tenants ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_non_admin -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_non_admin ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_non_admin_context -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_non_admin_context ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_nodegroup -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_nodegroup ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_pagination_limit -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_pagination_limit ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_no_config_default -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_no_config_default ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count_fail -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterResize.test_resize_with_zero_node_count_fail ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_not_authorized -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_not_authorized ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_with_config_default -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_with_config_default ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_one -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_one ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_as_admin -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota_not_found -magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_quota.TestQuotaObject.test_quota_init -magnum.tests.unit.api.controllers.v1.test_quota.TestQuotaObject.test_quota_init ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_not_found ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_all_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_all_stats ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ct_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ct_not_found ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_invalid_tenant_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_invalid_tenant_stats ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_tenant_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_tenant_stats ... ok -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_empty -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_empty ... ok - -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6} +{"uuid": "32d5fc4d-59df-4094-b44d-74db6b75ae72"} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.7 +Openstack-Api-Version: container-infra 1.8 Vary: OpenStack-API-Version {"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:47.954440+00:00', 'updated_at': None} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': '5eac904d-c782-4514-89cf-a28541b8c087'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.9 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a master nodegroup is not supported", "detail": "Resizing a master nodegroup is not supported.", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': '6a425620-503a-402f-bc5a-b3c52e3b0829'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.9 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing test-worker outside the allowed range: min_node_count = 1, max_node_count = 5", "detail": "Resizing test-worker outside the allowed range: min_node_count = 1, max_node_count = 5", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 3, 'nodegroup': '109489f3-4a79-44ab-9043-c23f7c0907c1'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.9 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing test-worker outside the allowed range: min_node_count = 4, max_node_count = None", "detail": "Resizing test-worker outside the allowed range: min_node_count = 4, max_node_count = None", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 6, 'nodegroup': 'c79208f0-49e4-4367-aaa9-9f5f949006ad'} +POST: /v1/clusters/334c61e4-ab44-4c16-b57b-9eb922f9d1cc/actions/upgrade {'cluster_template': 'test_2'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.9 +Openstack-Api-Version: container-infra 1.8 Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -GOT:{'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster_example_A', 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'keypair': None, 'node_count': 6, 'master_count': 3, 'docker_volume_size': None, 'labels': {}, 'master_flavor_id': None, 'flavor_id': None, 'create_timeout': 60, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'rel': 'bookmark'}], 'stack_id': '047c6319-7abd-4bd9-a033-8c6af0173cd0', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'health_status': None, 'health_status_reason': {}, 'discovery_url': None, 'api_address': '172.17.2.3', 'coe_version': None, 'container_version': None, 'project_id': 'fake_project', 'user_id': 'fake_user', 'node_addresses': ['172.17.2.4'], 'master_addresses': ['172.17.2.18'], 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {'key1': 'val1', 'key2': 'val2'}, 'master_lb_enabled': True, 'created_at': '2026-01-22T07:06:48.107515+00:00', 'updated_at': None} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 0, 'nodegroup': '891feb5b-3d2f-4a36-a2d5-a99596b74b4f'} +{"uuid": "334c61e4-ab44-4c16-b57b-9eb922f9d1cc"}magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_as_admin +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_as_admin ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_cluster_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ct_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ct_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_master +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_master ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_worker +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_worker ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_max_node_count +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_max_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ng_not_found +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ng_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_role +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_role ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng ... ok + GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.10 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/resize {'node_count': 0, 'nodegroup': '5cc8ea25-5007-48e2-bb9f-e530c5b126be'} -GOT:Response: 400 Bad Request +{"id": 12, "uuid": "d0d380ff-c1d4-4710-a86c-9b0df4ded5c0", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/d0d380ff-c1d4-4710-a86c-9b0df4ded5c0", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/d0d380ff-c1d4-4710-a86c-9b0df4ded5c0", "rel": "bookmark"}], "flavor_id": "test_flavor", "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.9 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Resizing a nodegroup to zero is not supported in the provided microversion", "detail": "Resizing a nodegroup to zero is not supported in the provided microversion.", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2'} +{"id": 12, "uuid": "9aca648b-779e-40b3-97da-7a03e189463c", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/9aca648b-779e-40b3-97da-7a03e189463c", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/9aca648b-779e-40b3-97da-7a03e189463c", "rel": "bookmark"}], "flavor_id": null, "image_id": "test_image", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': {'label1': 'value1'}, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.8 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -POST: /v1/clusters/deb26e84-7883-47b9-be67-d97e0b5bc759/actions/upgrade {'cluster_template': 'test_2'} +{"id": 12, "uuid": "b2f545b4-b478-4271-a14e-a6da1b268767", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {"label1": "value1"}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/b2f545b4-b478-4271-a14e-a6da1b268767", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/b2f545b4-b478-4271-a14e-a6da1b268767", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {"label1": "value1"}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': 5, 'min_node_count': 1, 'merge_labels': False} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.8 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"uuid": "deb26e84-7883-47b9-be67-d97e0b5bc759"} -POST: /v1/clusters/not_there/actions/upgrade {'cluster_template': 'test_2'} -GOT:Response: 404 Not Found +{"id": 12, "uuid": "7fdcf0ee-d215-44e0-96bc-a7c9889a4345", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/7fdcf0ee-d215-44e0-96bc-a7c9889a4345", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/7fdcf0ee-d215-44e0-96bc-a7c9889a4345", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": 5, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'test-role', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.8 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_there could not be found", "detail": "Cluster not_there could not be found.", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'not_there'} -GOT:Response: 404 Not Found +{"id": 12, "uuid": "14a363ea-7639-49b2-ac69-4028c884c176", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/14a363ea-7639-49b2-ac69-4028c884c176", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/14a363ea-7639-49b2-ac69-4028c884c176", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 3, "role": "test-role", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 0, 'role': 'worker', 'max_node_count': None, 'min_node_count': 0, 'merge_labels': False} +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.8 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate not_there could not be found", "detail": "ClusterTemplate not_there could not be found.", "links": []}]} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2', 'nodegroup': '3e589679-8ff9-42a9-8a5a-77f8de3f0eca'}magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_master -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_master ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_worker -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_default_worker ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 - warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_invalid_type_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_invalid_type_stats ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ng_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_ng_not_found ... ok +{"id": 12, "uuid": "3d7f3427-ca81-4422-8fe9-cbd8062001c2", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/3d7f3427-ca81-4422-8fe9-cbd8062001c2", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/3d7f3427-ca81-4422-8fe9-cbd8062001c2", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 0, "role": "worker", "min_node_count": 0, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_zero_nodes +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_with_zero_nodes ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng_invalid_ct +magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng_invalid_ct ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_without_node_count +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPost.test_create_nodegroup_without_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_create +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_create ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuotaObject.test_quota_init +magnum.tests.unit.api.controllers.v1.test_quota.TestQuotaObject.test_quota_init ... ok /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 @@ -12409,10 +12438,14 @@ warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_delete +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_delete ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_detail +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_detail ... ok +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_all_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_all_stats ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_all +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_all ... ok /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 @@ -12421,133 +12454,44 @@ warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats_without_param -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats_without_param ... ok +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_one +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_invalid_tenant_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_invalid_tenant_stats ... ok /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng_invalid_ct -magnum.tests.unit.api.controllers.v1.test_cluster_actions.TestClusterUpgrade.test_upgrade_non_default_ng_invalid_ct ... ok /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 warnings.warn("%s is an invalid UUID. Using UUIDFields " -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_create -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_create ... ok -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_some_other_user_stats -magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_some_other_user_stats ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_invalid_single_dns -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_invalid_single_dns ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_delete -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_delete ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_multi_dns -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_multi_dns ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_single_dns -magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_single_dns ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_detail -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_detail ... ok -magnum.tests.unit.api.test_app.TestAppConfig.test_get_pecan_config -magnum.tests.unit.api.test_app.TestAppConfig.test_get_pecan_config ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_invalid_network -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_invalid_network ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_multiple_valid_network -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_multiple_valid_network ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_valid_network -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_valid_network ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_invalid_network -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_invalid_network ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_multiple_valid_network -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_multiple_valid_network ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_valid_network -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_valid_network ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_invalid_subnet -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_invalid_subnet ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_multiple_valid_subnet -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_multiple_valid_subnet ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_all -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_all ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_valid_subnet -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_valid_subnet ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_invalid_flavor -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_invalid_flavor ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_none_flavor -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_none_flavor ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_vaild_flavor -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_vaild_flavor ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_when_user_forbidden -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_when_user_forbidden ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_forbidden_image -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_forbidden_image ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_multi_images_same_name -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_multi_images_same_name ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_nonexist_image_by_id -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_nonexist_image_by_id ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_nonexist_image_by_name -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_nonexist_image_by_name ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_valid_image_by_id -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_valid_image_by_id ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_valid_image_by_name -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_valid_image_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_one -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_get_one ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_without_os_distro -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_without_os_distro ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_invalid_keypair -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_invalid_keypair ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_no_keypair -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_no_keypair ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_valid_keypair -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_valid_keypair ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_labels_main_no_label -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_labels_main_no_label ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_cluster -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_cluster ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_invalid_fixed_subnet -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_invalid_fixed_subnet ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_invalid_flavor -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_invalid_flavor ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_valid_fixed_subnet -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_valid_fixed_subnet ... ok -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_without_validator -magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_without_validator ... ok -magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method -magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method ... ok -magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method_auth_info -magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method_auth_info ... ok magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_update magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_disallow_update ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive ... ok +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_tenant_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_admin_get_tenant_stats ... ok magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_delete magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_delete ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_all_three -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_all_three ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_created -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_created ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_get_one -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_get_one ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_latest_update -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_latest_update ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_updated -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_updated ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_check_type -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_check_type ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_update -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_update ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_all_three -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_all_three ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_create -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_create ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_old_update -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_old_update ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_update -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_update ... ok -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_forced_down -magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_forced_down ... ok +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_empty +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_empty ... ok +POST: /v1/clusters/not_there/actions/upgrade {'cluster_template': 'test_2'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.8 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not_there could not be found", "detail": "Cluster not_there could not be found.", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'not_there'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.8 +Vary: OpenStack-API-Version +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate not_there could not be found", "detail": "ClusterTemplate not_there could not be found.", "links": []}]} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2', 'nodegroup': 'e1cc6b87-1aaa-4de8-92c3-c4210cfdedd1'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -12555,7 +12499,7 @@ Openstack-Api-Version: container-infra 1.9 Vary: OpenStack-API-Version {"uuid": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52"} -POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2', 'nodegroup': '2d4ac274-8d28-4cae-970f-67f569613dd6'} +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/actions/upgrade {'cluster_template': 'test_2', 'nodegroup': 'b577e8fc-6597-47a7-b271-be64977eeff6'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -12603,7 +12547,7 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow clustertemplate:delete to be performed", "detail": "Policy doesn't allow clustertemplate:delete to be performed.", "links": []}]} -GET: /v1/clustertemplates/40c0416d-3321-4c2f-af85-72d40a1f2aca/detail {} +GET: /v1/clustertemplates/c34a976e-6d38-4d23-a445-02cf7d7e6e2e/detail {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -12643,7 +12587,123 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow clustertemplate:delete to be performed", "detail": "Policy doesn't allow clustertemplate:delete to be performed.", "links": []}]} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {}/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_get_one +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_get_one ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_invalid_type_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_invalid_type_stats ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_update +magnum.tests.unit.api.controllers.v1.test_cluster_template.TestClusterTemplatePolicyEnforcement.test_policy_only_owner_update ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats_without_param +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_self_stats_without_param ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid1'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'uuid2'" 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 + warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_not_found +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_some_other_user_stats +magnum.tests.unit.api.controllers.v1.test_stats.TestStatsController.test_get_some_other_user_stats ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_invalid_values +magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_invalid_values ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name_not_found +magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name_not_found ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_multitype_tostring +magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_multitype_tostring ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_valid_values +magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_valid_values ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid +magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid +magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_against_single +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_against_single ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_already_exist +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_already_exist ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_not_exist +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_not_exist ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_detail_with_pagination_marker ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_name +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_empty +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_empty ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_uuid +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_multi_exist +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_multi_exist ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_non_exist +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_non_exist ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_all_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_all_with_pagination_marker ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_name +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_name ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_uuid +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_uuid ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir +magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ... ok +magnum.tests.unit.api.test_expose.TestExpose.test_expose_with_rest_content_types +magnum.tests.unit.api.test_expose.TestExpose.test_expose_with_rest_content_types ... ok +magnum.tests.unit.api.test_expose.TestExpose.test_expose_without_rest_content_types +magnum.tests.unit.api.test_expose.TestExpose.test_expose_without_rest_content_types ... ok +magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method +magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method ... ok +magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method_auth_info +magnum.tests.unit.api.test_hooks.TestContextHook.test_context_hook_before_method_auth_info ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_multiple_federation +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_multiple_federation ... ok +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_not_found +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_name_not_found ... ok +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ... ok +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_clientfault +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_clientfault ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid ... ok +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_serverfault +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_serverfault ... ok + GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 @@ -12659,531 +12719,392 @@ Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version {"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow clustertemplate:update to be performed", "detail": "Policy doesn't allow clustertemplate:update to be performed.", "links": []}]} -DELETE: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 +DELETE: /v1/federations/5e275501-dcf4-4b4a-9b02-c1ea2b3ca7cc GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_as_admin -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_as_admin ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_not_found ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_not_supported -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_not_supported ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_supported -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_supported ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_config_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_config_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_invalid_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_invalid_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_invalid_coe_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_invalid_coe_create ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_cluster -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_cluster ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_invalid -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_invalid ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_bm -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_bm ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_vm -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_vm ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_invalid_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_invalid_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_add_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_add_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_replace_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_replace_update ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_remove_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_remove_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_add_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_add_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_replace_update -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_replace_update ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_valid_create -magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_valid_create ... ok -magnum.tests.unit.api.test_validation.TestValidation.test_validate_cluster_properties -magnum.tests.unit.api.test_validation.TestValidation.test_validate_cluster_properties ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_cluster_template_with_name_not_found ... ok -magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor -magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_multiple_cluster_template_by_name -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestDelete.test_delete_multiple_cluster_template_by_name ... ok -magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor_config_workers -magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor_config_workers ... ok -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_revision -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_revision ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_add_root_non_existent -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_add_root_non_existent ... ok -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_stamp -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_stamp ... ok -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_upgrade -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_upgrade ... ok -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_version -magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_version ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_create_cluster_template_with_no_os_distro_image -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_create_cluster_template_with_no_os_distro_image ... ok -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GET: /v1/federations/5e275501-dcf4-4b4a-9b02-c1ea2b3ca7cc {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found", "detail": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.", "links": []}]} -DELETE: /v1/clustertemplates/78b62d08-5c4f-4ab7-a4e3-d9ff18ed2855 -GOT:Response: 204 No Content -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version - -DELETE: /v1/clustertemplates/484e3c2b-bc9a-4008-a65a-e3214ec54577 +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation 5e275501-dcf4-4b4a-9b02-c1ea2b3ca7cc could not be found", "detail": "Federation 5e275501-dcf4-4b4a-9b02-c1ea2b3ca7cc could not be found.", "links": []}]} +DELETE: /v1/federations/dfdac24c-7254-4ecd-899b-839da9b4f7bc GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate 484e3c2b-bc9a-4008-a65a-e3214ec54577 could not be found", "detail": "ClusterTemplate 484e3c2b-bc9a-4008-a65a-e3214ec54577 could not be found.", "links": []}]} -DELETE: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters", "detail": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters.", "links": []}]} -DELETE: /v1/clustertemplates/clustermodel1 +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation dfdac24c-7254-4ecd-899b-839da9b4f7bc could not be found", "detail": "Federation dfdac24c-7254-4ecd-899b-839da9b4f7bc could not be found.", "links": []}]} +DELETE: /v1/federations/federation-example GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -DELETE: /v1/clustertemplates/not_found +DELETE: /v1/federations/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate not_found could not be found", "detail": "ClusterTemplate not_found could not be found.", "links": []}]} -DELETE: /v1/clustertemplates/test_cluster_template -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple ClusterTemplates exist with same name", "detail": "Multiple ClusterTemplates exist with same name. Please use the ClusterTemplate uuid instead.", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Adding a new attribute /foo to the root of the resource is not allowed", "detail": "Adding a new attribute /foo to the root of the resource is not allowed.", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/image_id', 'value': 'img', 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation foo could not be found", "detail": "Federation foo could not be found.", "links": []}]} +GET: /v1/federations/detail {} +GOT:{'federations': [{'uuid': '4dad272e-2a44-4e5f-8a6e-c5c8723e8cbe', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/4dad272e-2a44-4e5f-8a6e-c5c8723e8cbe', 'rel': 'self'}, {'href': 'http://localhost/federations/4dad272e-2a44-4e5f-8a6e-c5c8723e8cbe', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:15:14.169596+00:00', 'updated_at': None}]} +GET: /v1/federations/407a8cdd-56fd-407e-9f80-14bd6e0609f6/detail {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "img", "detail": "img", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/image_id', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "The %(name)s resource %(id)s could not be found", "detail": "The %(name)s resource %(id)s could not be found.", "links": []}]} +GET: /v1/federations/detail?limit=3&marker=50c19e74-d039-4d8a-9289-c80c8202782a {} +GOT:{'federations': [{'uuid': '4b91ba8b-a8b4-4d3a-b80b-d369c9cba5bb', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/4b91ba8b-a8b4-4d3a-b80b-d369c9cba5bb', 'rel': 'self'}, {'href': 'http://localhost/federations/4b91ba8b-a8b4-4d3a-b80b-d369c9cba5bb', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:15:14.279469+00:00', 'updated_at': None}]} +GET: /v1/federations {} +GOT:{'federations': []} +GET: /v1/federations?limit=3&marker=5a61359f-9ab0-4e30-8418-f0320611636a {} +GOT:{'federations': [{'uuid': '5855bfba-fbf5-4e35-8384-d8f69570f039', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/5855bfba-fbf5-4e35-8384-d8f69570f039', 'rel': 'self'}, {'href': 'http://localhost/federations/5855bfba-fbf5-4e35-8384-d8f69570f039', 'rel': 'bookmark'}]}]} +GET: /v1/federations/add28f58-82a1-4cb9-8578-7e67483e7049 {} +GOT:{'uuid': 'add28f58-82a1-4cb9-8578-7e67483e7049', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/add28f58-82a1-4cb9-8578-7e67483e7049', 'rel': 'self'}, {'href': 'http://localhost/federations/add28f58-82a1-4cb9-8578-7e67483e7049', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:15:14.419911+00:00', 'updated_at': None} +GET: /v1/federations/fake-name {} +GOT:{'uuid': 'bd8d500e-a3fd-47b7-afc0-c7eac117e516', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/bd8d500e-a3fd-47b7-afc0-c7eac117e516', 'rel': 'self'}, {'href': 'http://localhost/federations/bd8d500e-a3fd-47b7-afc0-c7eac117e516', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:15:14.470674+00:00', 'updated_at': None} +GET: /v1/federations/test_federation {} +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/image_id' is a mandatory attribute and can not be removed", "detail": "'/image_id' is a mandatory attribute and can not be removed", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/coe', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "Multiple federations exist with same name", "detail": "Multiple federations exist with same name. Please use the federation uuid instead.", "links": []}]} +GET: /v1/federations/not_found {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/coe' is a mandatory attribute and can not be removed", "detail": "'/coe' is a mandatory attribute and can not be removed", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/external_network_id', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation not_found could not be found", "detail": "Federation not_found could not be found.", "links": []}]} +GET: /v1/federations/99765eba-abe8-408b-aa88-c681bb0cdb12 {} +GOT:{'uuid': '99765eba-abe8-408b-aa88-c681bb0cdb12', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/99765eba-abe8-408b-aa88-c681bb0cdb12', 'rel': 'self'}, {'href': 'http://localhost/federations/99765eba-abe8-408b-aa88-c681bb0cdb12', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:15:14.603613+00:00', 'updated_at': None} +GET: /v1/federations/1b78139d-01c2-42ed-928d-284708e5e2d1 {}magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid_not_found +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_get_one_by_uuid_not_found ... ok +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback +magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_all_three +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_all_three ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_links +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_links ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_created +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_created ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_latest_update +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_latest_update ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_updated +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_alive_with_updated ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_many +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_many ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_check_type +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_check_type ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_one +magnum.tests.unit.api.controllers.v1.test_federation.TestListFederation.test_one ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_all_three +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_all_three ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_create +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_create ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_old_update +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_old_update ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_cluster_already_member +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_cluster_already_member ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_update +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_down_with_update ... ok +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_forced_down +magnum.tests.unit.api.test_servicegroup.TestServiceGroup.test_service_is_up_forced_down ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_non_existent_cluster +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_non_existent_cluster ... ok +magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_http +magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_http ... ok +magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_http_config_workers +magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_http_config_workers ... ok +magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https +magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_join +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_join ... ok +magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_cert +magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_cert ... ok +magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_key +magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_key ... ok +magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor +magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor ... ok + +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/external_network_id' is a mandatory attribute and can not be removed", "detail": "'/external_network_id' is a mandatory attribute and can not be removed", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/server_type', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation 1b78139d-01c2-42ed-928d-284708e5e2d1 could not be found", "detail": "Federation 1b78139d-01c2-42ed-928d-284708e5e2d1 could not be found.", "links": []}]} +GET: /v1/federations/296044d2-4af9-4eda-ac30-ae7bcf99dcd8 {} +GOT:{'uuid': '296044d2-4af9-4eda-ac30-ae7bcf99dcd8', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/296044d2-4af9-4eda-ac30-ae7bcf99dcd8', 'rel': 'self'}, {'href': 'http://localhost/federations/296044d2-4af9-4eda-ac30-ae7bcf99dcd8', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:15:14.714071+00:00', 'updated_at': None} +GET: /v1/federations/296044d2-4af9-4eda-ac30-ae7bcf99dcd8 {} +GOT:{'uuid': '296044d2-4af9-4eda-ac30-ae7bcf99dcd8', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/296044d2-4af9-4eda-ac30-ae7bcf99dcd8', 'rel': 'self'}, {'href': 'http://localhost/federations/296044d2-4af9-4eda-ac30-ae7bcf99dcd8', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:15:14.714071+00:00', 'updated_at': None} +GET: /federations/296044d2-4af9-4eda-ac30-ae7bcf99dcd8 {} +GOT:{'uuid': '296044d2-4af9-4eda-ac30-ae7bcf99dcd8', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/296044d2-4af9-4eda-ac30-ae7bcf99dcd8', 'rel': 'self'}, {'href': 'http://localhost/federations/296044d2-4af9-4eda-ac30-ae7bcf99dcd8', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:15:14.714071+00:00', 'updated_at': None} +GET: /v1/federations {} +GOT:{'federations': [{'uuid': '763e72b0-0904-4398-9769-ef2f9d644841', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/763e72b0-0904-4398-9769-ef2f9d644841', 'rel': 'self'}, {'href': 'http://localhost/federations/763e72b0-0904-4398-9769-ef2f9d644841', 'rel': 'bookmark'}]}, {'uuid': 'b8f479f4-24c0-43d2-9665-c5b0257b6623', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/b8f479f4-24c0-43d2-9665-c5b0257b6623', 'rel': 'self'}, {'href': 'http://localhost/federations/b8f479f4-24c0-43d2-9665-c5b0257b6623', 'rel': 'bookmark'}]}, {'uuid': '7b5bdd18-1355-43e3-a01a-1f3a1c3a654e', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/7b5bdd18-1355-43e3-a01a-1f3a1c3a654e', 'rel': 'self'}, {'href': 'http://localhost/federations/7b5bdd18-1355-43e3-a01a-1f3a1c3a654e', 'rel': 'bookmark'}]}, {'uuid': 'b1a70d7b-430b-4b67-b6e0-b7ad8d9d51e5', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/b1a70d7b-430b-4b67-b6e0-b7ad8d9d51e5', 'rel': 'self'}, {'href': 'http://localhost/federations/b1a70d7b-430b-4b67-b6e0-b7ad8d9d51e5', 'rel': 'bookmark'}]}, {'uuid': 'afc7e443-797d-47b3-95ec-f1a9ebbd3553', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/afc7e443-797d-47b3-95ec-f1a9ebbd3553', 'rel': 'self'}, {'href': 'http://localhost/federations/afc7e443-797d-47b3-95ec-f1a9ebbd3553', 'rel': 'bookmark'}]}]} +GET: /v1/federations {} +GOT:{'federations': [{'uuid': '00187c49-9073-400f-96f8-1a25e3609fc1', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/00187c49-9073-400f-96f8-1a25e3609fc1', 'rel': 'self'}, {'href': 'http://localhost/federations/00187c49-9073-400f-96f8-1a25e3609fc1', 'rel': 'bookmark'}]}]} +PATCH: /v1/federations/699140c2-22a3-4872-8cff-75c692363565 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/server_type' is a mandatory attribute and can not be removed", "detail": "'/server_type' is a mandatory attribute and can not be removed", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/tls_disabled', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "A cluster with UUID 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is already a member of the federation federation-example", "detail": "A cluster with UUID 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is already a member of the federation federation-example.", "links": []}]} +PATCH: /v1/federations/c30875e4-f3c1-4b6d-9e40-a590895094c3 [{'path': '/member_ids', 'value': '1d8248b9-943d-4226-8da9-93d7cd02c2a5', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/tls_disabled' is a mandatory attribute and can not be removed", "detail": "'/tls_disabled' is a mandatory attribute and can not be removed", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 1d8248b9-943d-4226-8da9-93d7cd02c2a5 could not be found", "detail": "Cluster 1d8248b9-943d-4226-8da9-93d7cd02c2a5 could not be found.", "links": []}]} +PATCH: /v1/federations/49e7541d-4afa-457f-b065-67a3ea6e880c [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/public' is a mandatory attribute and can not be removed", "detail": "'/public' is a mandatory attribute and can not be removed", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/registry_enabled', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"uuid": "49e7541d-4afa-457f-b065-67a3ea6e880c"} +GET: /v1/federations/49e7541d-4afa-457f-b065-67a3ea6e880c {} +GOT:{'uuid': '49e7541d-4afa-457f-b065-67a3ea6e880c', 'name': 'federation-example', 'hostcluster_id': 'fake_master', 'member_ids': ['5d12f6fd-a196-4bf0-ae4c-1f639a523a52'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/49e7541d-4afa-457f-b065-67a3ea6e880c', 'rel': 'self'}, {'href': 'http://localhost/federations/49e7541d-4afa-457f-b065-67a3ea6e880c', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:15:15.029935+00:00', 'updated_at': '2026-01-22T07:15:15.071829+00:00'} +PATCH: /v1/federations/ac54198d-ab80-4af6-900d-ee67377251fc [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'remove'}] +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/registry_enabled' is a mandatory attribute and can not be removed", "detail": "'/registry_enabled' is a mandatory attribute and can not be removed", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_mandatory_property_fail -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_mandatory_property_fail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_non_existent_property_fail -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_non_existent_property_fail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_singular -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_singular ... ok -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_with_details_and_path -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_with_details_and_path ... ok -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_without_details_and_path -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_without_details_and_path ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_uuid -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_remove_uuid ... ok -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_none_arg -magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_none_arg ... ok +{"uuid": "ac54198d-ab80-4af6-900d-ee67377251fc"} +GET: /v1/federations/ac54198d-ab80-4af6-900d-ee67377251fc {} +GOT:{'uuid': 'ac54198d-ab80-4af6-900d-ee67377251fc', 'name': 'federation-example', 'hostcluster_id': 'fake_master', 'member_ids': [], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/ac54198d-ab80-4af6-900d-ee67377251fc', 'rel': 'self'}, {'href': 'http://localhost/federations/ac54198d-ab80-4af6-900d-ee67377251fc', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:15:15.131511+00:00', 'updated_at': '2026-01-22T07:15:15.161512+00:00'}magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_unjoin +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_unjoin ... ok +magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor_config_workers +magnum.tests.unit.cmd.test_conductor.TestMagnumConductor.test_conductor_config_workers ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_existent_cluster +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_existent_cluster ... ok magnum.tests.unit.cmd.test_status.TestUpgradeChecks.test_checks magnum.tests.unit.cmd.test_status.TestUpgradeChecks.test_checks ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_delete_cert -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_delete_cert ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert_no_registration -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert_no_registration ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_external_network_id -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_external_network_id ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert_failure -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert_failure ... ok -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCert.test_get_decrypted_private_key -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCert.test_get_decrypted_private_key ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalCert.test_local_cert -magnum.tests.unit.common.cert_manager.test_local.TestLocalCert.test_local_cert ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_flavor_id -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_flavor_id ... ok -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_create_no_permission -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_create_no_permission ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_image_id -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_image_id ... ok -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_get_no_permission ... ok -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_update_no_permission -magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_update_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_create_no_permission -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_create_no_permission ... ok - -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/cluster_distro', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/cluster_distro' is a mandatory attribute and can not be removed", "detail": "'/cluster_distro' is a mandatory attribute and can not be removed", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/network_driver', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/network_driver' is a mandatory attribute and can not be removed", "detail": "'/network_driver' is a mandatory attribute and can not be removed", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/non-existent', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'", "detail": "Couldn't apply patch '[{'path': '/non-existent', 'op': 'remove'}]'. Reason: can't remove a non-existent object 'non-existent'", "links": []}]} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:49.072496+00:00', 'updated_at': None} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/dns_nameserver', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": null, "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:49.072496+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': None, 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:49.072496+00:00', 'updated_at': '2026-01-22T07:06:49.098227+00:00'} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/uuid' is an internal attribute and can not be updated", "detail": "'/uuid' is an internal attribute and can not be updated", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/external_network_id', 'value': 'aaa', 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "aaa", "detail": "aaa", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/flavor_id', 'value': 'aaa', 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "aaa", "detail": "aaa", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/image_id', 'value': 'aaa', 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "aaa", "detail": "aaa", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/keypair_id', 'value': 'aaa', 'op': 'replace'}] -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "aaa", "detail": "aaa", "links": []}]}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_keypair_id -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_cluster_template_with_no_exist_keypair_id ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_singular -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_replace_singular ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_as_admin -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_as_admin ... ok -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_delete_no_permission -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_delete_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_all_no_permission -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_all_no_permission ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_hidden_with_cluster_allow_update -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_hidden_with_cluster_allow_update ... ok -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_update_no_permission -magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_update_no_permission ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert_none_values +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert_none_values ... ok +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_barbican_cert_manager +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_barbican_cert_manager ... ok +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_local_cert_manager +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_local_cert_manager ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_with_fail +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_with_fail ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_intermediate +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_intermediate ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_pkp +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_pkp ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert ... ok +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_member_cluster +magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_member_cluster ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_cert_fail +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_cert_fail ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_intermediates_fail +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_intermediates_fail ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_pkp_fail +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_pkp_fail ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_private_key_fail +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_private_key_fail ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_intermediate +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_intermediate ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_pkp +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_pkp ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_by_name_not_found +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_by_name_not_found ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert_with_io_error +magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert_with_io_error ... ok +magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairCert.test_x509keypair_cert +magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairCert.test_x509keypair_cert ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_default_nodegroup +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_default_nodegroup ... ok magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_create_no_permission magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_create_no_permission ... ok magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_delete_no_permission magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_delete_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup ... ok +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_all_no_permission +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_all_no_permission ... ok +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_detail_no_permission +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_detail_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_as_admin +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_as_admin ... ok +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_no_permission ... ok +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_update_no_permission +magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_update_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_by_name +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_nodegroup_by_name ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_create_no_permission +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_create_no_permission ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_delete_no_permission +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_delete_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_not_found +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_not_found ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_detail_list_no_permission +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_detail_list_no_permission ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_wrong_microversion +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestDelete.test_delete_wrong_microversion ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_reader +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_reader ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all ... ok +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_update_no_permission +magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_update_no_permission ... ok +magnum.tests.unit.common.policies.test_magnum_service_policy.TestMagnumServicePolicy.test_get_all_no_permission +magnum.tests.unit.common.policies.test_magnum_service_policy.TestMagnumServicePolicy.test_get_all_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_as_admin +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_as_admin ... ok +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_create_no_permission +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_create_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name ... ok +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_delete_no_permission +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_delete_no_permission ... ok +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_all_no_permission +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_all_no_permission ... ok -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:49.257704+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_B', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:49.257704+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} -PATCH: /v1/clustertemplates/f7c74d4e-98da-4f38-b27a-050acf6940bc [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 -Vary: OpenStack-API-Version -{"uuid": "f7c74d4e-98da-4f38-b27a-050acf6940bc", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "ubuntu", "flavor_id": "m1.small", "master_flavor_id": "m1.small", "dns_nameserver": "8.8.1.1", "keypair_id": "keypair1", "external_network_id": "d1f02cfb-d27f-4068-9332-84d907cb0e2e", "fixed_network": "private", "fixed_subnet": "private-subnet", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/f7c74d4e-98da-4f38-b27a-050acf6940bc", "rel": "self"}, {"href": "http://localhost/clustertemplates/f7c74d4e-98da-4f38-b27a-050acf6940bc", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": null, "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "f7c74d4e-98da-4f38-b27a-050acf6940bc", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:49.301496+00:00", "updated_at": null} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}] -GOT:Response: 200 OK +PATCH: /v1/federations/444ecaed-1fea-4c9a-bb68-e513b843dd14 [{'path': '/member_ids', 'value': 'c41f1650-5916-4435-9fea-8d786688f9b7', 'op': 'remove'}] +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": true, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:49.332588+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': True, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:49.332588+00:00', 'updated_at': '2026-01-22T07:06:49.361461+00:00'} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'replace'}] -GOT:Response: 200 OK +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster c41f1650-5916-4435-9fea-8d786688f9b7 could not be found", "detail": "Cluster c41f1650-5916-4435-9fea-8d786688f9b7 could not be found.", "links": []}]} +PATCH: /v1/federations/9e0a7737-5109-4ed8-92b7-0752aeb216e7 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'remove'}] +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_B", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:49.385821+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_name_with_cluster -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_name_with_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_replace_labels_success -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_replace_labels_success ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster ... ok - -GET: /v1/quotas/fake_project/Cluster {} -GOT:Response: 200 OK +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is not a member of the federation federation-example", "detail": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is not a member of the federation federation-example.", "links": []}]} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/not-there +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"hard_limit": 20, "project_id": "fake_project", "resource": "Cluster"} -GET: /v1/quotas {} -GOT:{'quotas': []} -GET: /v1/quotas?all_tenants=True {} -GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'proj-id-0', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:47.833015+00:00', 'updated_at': None}, {'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:47.834229+00:00', 'updated_at': None}, {'id': 3, 'hard_limit': 10, 'project_id': 'proj-id-2', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:47.835175+00:00', 'updated_at': None}, {'id': 4, 'hard_limit': 10, 'project_id': 'proj-id-3', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:47.836085+00:00', 'updated_at': None}]} -GET: /v1/quotas?all_tenants=False {} -GOT:{'quotas': [{'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:47.856845+00:00', 'updated_at': None}]} -GET: /v1/quotas?limit=3&marker=3&all_tenants=True {} -GOT:{'quotas': [{'id': 4, 'hard_limit': 10, 'project_id': 'proj-id-3', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:48.061910+00:00', 'updated_at': None}]} -GET: /v1/quotas {} -GOT:{'quotas': [{'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:48.083969+00:00', 'updated_at': None}]} -GET: /v1/quotas {} -GOT:{'quotas': [{'id': 3, 'hard_limit': 10, 'project_id': 'proj-id-2', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:48.105810+00:00', 'updated_at': None}]} -GET: /v1/quotas?all_tenants=True {} -GOT:{'quotas': []} -GET: /v1/quotas?limit=2&all_tenants=True {} -GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'proj-id-0', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:48.148488+00:00', 'updated_at': None}, {'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:48.149548+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/quotas?sort_key=id&sort_dir=asc&limit=2&marker=2'} -GET: /v1/quotas/fake_project/Cluster {} -GOT:{'id': 1, 'hard_limit': 10, 'project_id': 'fake_project', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:48.169750+00:00', 'updated_at': None} -GET: /v1/quotas/fake_project/Cluster {} -GOT:Response: 200 OK +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup not-there could not be found", "detail": "Nodegroup not-there could not be found.", "links": []}]} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/f5243ef7-0825-47ab-b26b-40660549a67c +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"hard_limit": 20, "project_id": "fake_project", "resource": "Cluster"} -GET: /v1/quotas/invalid_proj/invalid_res {} -GOT:Response: 403 Forbidden -Content-Type: application/json +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Deleting a default nodegroup is not supported", "detail": "Deleting a default nodegroup is not supported.", "links": []}]} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 +GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Not authorized", "detail": "Not authorized.", "links": []}]} -GET: /v1/quotas/fake_project/Cluster {} -GOT:Response: 200 OK + +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"hard_limit": 15, "project_id": "fake_project", "resource": "Cluster"} -GET: /v1/quotas {} -GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'fake_project', 'resource': 'Cluster', 'created_at': '2026-01-22T07:06:48.240373+00:00', 'updated_at': None}]} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 5} -GOT:Response: 201 Created -Content-Type: application/json +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup 483203a3-dbee-4a9c-9d65-9820512f4df8 could not be found", "detail": "Nodegroup 483203a3-dbee-4a9c-9d65-9820512f4df8 could not be found.", "links": []}]} +DELETE: /v1/clusters/fa0cd89b-4dbe-41dc-9103-5c48f95d0d85/nodegroups/a6b5164e-e6f9-42da-b855-4dd6487c176c +GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 5, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:48.262976+00:00", "updated_at": null} -PATCH: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 20} -GOT:Response: 202 Accepted -Content-Type: application/json + +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 +GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 20, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:48.262976+00:00", "updated_at": "2026-01-22T07:06:48.270075+00:00"} -POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} -GOT:Response: 201 Created + +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:48.289482+00:00", "updated_at": null} -PATCH: /v1/quotas {'project_id': 'not-found', 'hard_limit': 20, 'resource': 'Cluster'} +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup nodegroup1 could not be found", "detail": "Nodegroup nodegroup1 could not be found.", "links": []}]} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/5f5b3452-a4f2-4e35-b2dc-1e237f91e717 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Quota could not be found: project_id not-found resource Cluster", "detail": "Quota could not be found: project_id not-found resource Cluster.", "links": []}]} -GET: /v1/stats {} -GOT:{'clusters': 2, 'nodes': 12} -GET: /v1/stats?project_id=34 {} -GOT:{'clusters': 0, 'nodes': 0} -GET: /v1/stats?project_id=234 {} -GOT:{'clusters': 1, 'nodes': 6} -GET: /v1/stats {} -GOT:{'clusters': 0, 'nodes': 0} -GET: /v1/stats?project_id=123&type=invalid {} -GET: /v1/stats {} -GOT:{'clusters': 1, 'nodes': 6} -GET: /v1/stats {} -GOT:{'clusters': 1, 'nodes': 6} -GET: /v1/stats?project_id=123 {} -POST: /v1/certificates {'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'csr': 'fake-csr'} -GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -PATCH: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} -DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 -GET: /v1/clusters {} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} -PATCH: /v1/clusters/cluster_example_A [{'path': '/node_count', 'value': 4, 'op': 'replace'}] -POST: /v1/clustertemplates {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'clustermodel1', 'image_id': 'ubuntu', 'flavor_id': 'm1.small', 'master_flavor_id': 'm1.small', 'keypair_id': 'keypair1', 'external_network_id': 'd1f02cfb-d27f-4068-9332-84d907cb0e2e', 'fixed_network': 'private', 'fixed_subnet': 'private-subnet', 'network_driver': None, 'volume_driver': None, 'dns_nameserver': '8.8.1.1', 'apiserver_port': 8080, 'docker_volume_size': 20, 'docker_storage_driver': 'devicemapper', 'cluster_distro': 'fedora-coreos', 'coe': 'kubernetes', 'labels': {'key1': 'val1', 'key2': 'val2'}, 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'registry_enabled': False, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'hidden': False, 'tags': '', 'driver': ''} -DELETE: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 -GET: /v1/clustertemplates {}magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_all_no_permission -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_all_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_detail_no_permission -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_detail_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_get_no_permission ... ok -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_update_no_permission -magnum.tests.unit.common.policies.test_cluster_template_policy.TestClusterTemplatePolicy.test_update_no_permission ... ok -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_create_no_permission -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_create_no_permission ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster_allow_update -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_cluster_allow_update ... ok -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_delete_no_permission -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_delete_no_permission ... ok -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_all_no_permission -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_all_no_permission ... ok -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_no_permission ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_devicemapper -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_cluster_template_with_devicemapper ... ok -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_update_no_permission -magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_update_no_permission ... ok +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup 5f5b3452-a4f2-4e35-b2dc-1e237f91e717 could not be found", "detail": "Nodegroup 5f5b3452-a4f2-4e35-b2dc-1e237f91e717 could not be found.", "links": []}]} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 +GOT:Response: 406 Not Acceptable +Content-Type: application/json +{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} +GET: /v1/clusters/4e34a0e8-a06f-49c4-a4e2-19034f95b617/nodegroups {} +GOT:{'nodegroups': [{'uuid': '2d3688f6-87a5-4c9e-aad7-58bd9f3538ed', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '62ee4144-7e6f-4b78-b279-f3282fb9531f', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} +GET: /v1/clusters/732fa431-daf6-45f1-9b59-f25f52b4a3d8/nodegroups {} +GOT:{'nodegroups': [{'uuid': 'b67f7d64-e73e-4bfb-8461-40b7325d252d', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': 'e5a9628c-c7bb-47b1-821b-70c36924dc5c', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} +GET: /v1/clusters/cluster1/nodegroups {} +GOT:{'nodegroups': [{'uuid': '68c49118-052a-4f17-875a-8d7f8476ed48', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '2ee87f49-f60e-4d0a-9d4b-6d569a134465', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} +GET: /v1/clusters/cluster1/nodegroups {} +GOT:{'nodegroups': [{'uuid': '9d11b727-5e6c-4c0d-ae31-8810255eb8a7', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '65c4c29a-4ba2-4011-b827-7488b5b66cd5', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}, {'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name_non_default_ngs +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_name_non_default_ngs ... ok +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_non_existent_role +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_non_existent_role ... ok +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_update_no_permission +magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_update_no_permission ... ok +magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_admin +magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_admin ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_role +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_by_role ... ok +magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_no_permission +magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_no_permission ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_non_existent_cluster +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_non_existent_cluster ... ok +magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_reader +magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_reader ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_barbican magnum.tests.unit.common.test_clients.ClientsTest.test_clients_barbican ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_barbican_cached @@ -13194,8 +13115,6 @@ magnum.tests.unit.common.test_clients.ClientsTest.test_clients_barbican_region ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_glance magnum.tests.unit.common.test_clients.ClientsTest.test_clients_glance ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_fail -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_fail ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_glance_cached magnum.tests.unit.common.test_clients.ClientsTest.test_clients_glance_cached ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_glance_noauth @@ -13210,6 +13129,8 @@ magnum.tests.unit.common.test_clients.ClientsTest.test_clients_heat_noauth ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_heat_region magnum.tests.unit.common.test_clients.ClientsTest.test_clients_heat_region ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_with_pagination_marker ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_neutron magnum.tests.unit.common.test_clients.ClientsTest.test_clients_neutron ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_neutron_cached @@ -13220,358 +13141,535 @@ magnum.tests.unit.common.test_clients.ClientsTest.test_clients_neutron_region ... ok magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_wrong_microversion +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_all_wrong_microversion ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one ... ok +magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_cached +magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_cached ... ok +magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_noauth +magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_noauth ... ok +magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_region +magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_region ... ok +magnum.tests.unit.common.test_clients.ClientsTest.test_magnum_url +magnum.tests.unit.common.test_clients.ClientsTest.test_magnum_url ... ok +magnum.tests.unit.common.test_clients.ClientsTest.test_url_for +magnum.tests.unit.common.test_clients.ClientsTest.test_url_for ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_as_admin +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_as_admin ... ok +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers ... ok +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_already_deleted +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_already_deleted ... ok +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_no_candidate +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_no_candidate ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default_skipped_labels +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_default_skipped_labels ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_existent_ng +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_non_existent_ng ... ok -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/labels', 'value': "{'etcd_volume_size': '1'}", 'op': 'replace'}] -GOT:Response: 200 OK +GET: /v1/clusters/cluster1/nodegroups?role=non-existent {} +GOT:{'nodegroups': []} +GET: /v1/clusters/cluster1/nodegroups?role=master {} +GOT:{'nodegroups': [{'uuid': '9e499669-edbb-4fb3-be40-80b11faf12e9', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} +GET: /v1/clusters/cluster1/nodegroups?role=worker {} +GOT:{'nodegroups': [{'uuid': 'f782ff97-d994-4849-81a3-b1c78b3de395', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}]} +GET: /v1/clusters/not-here/nodegroups {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"etcd_volume_size": "1"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:49.430104+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'etcd_volume_size': '1'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:49.430104+00:00', 'updated_at': '2026-01-22T07:06:49.451576+00:00'} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/network_driver', 'value': 'flannel', 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster not-here could not be found", "detail": "Cluster not-here could not be found.", "links": []}]} +GET: /v1/clusters/6490c84c-db09-431e-ad31-f901ea701fdc/nodegroups?limit=1 {} +GOT:{'nodegroups': [{'uuid': 'e3bccd9c-ad23-43a4-8caa-8da571a0008c', 'name': 'test-worker', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'worker', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}], 'next': 'http://localhost/v1/clusters/6490c84c-db09-431e-ad31-f901ea701fdc/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=e3bccd9c-ad23-43a4-8caa-8da571a0008c'} +GET: /v1/clusters/6490c84c-db09-431e-ad31-f901ea701fdc/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=e3bccd9c-ad23-43a4-8caa-8da571a0008c {} +GOT:{'nodegroups': [{'uuid': 'e039de47-60e1-4e20-946b-a46a2b7cec6c', 'name': 'test-master', 'flavor_id': None, 'image_id': 'test_image', 'node_count': 3, 'role': 'master', 'min_node_count': 0, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'merge_labels': False}], 'next': 'http://localhost/v1/clusters/6490c84c-db09-431e-ad31-f901ea701fdc/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=e039de47-60e1-4e20-946b-a46a2b7cec6c'} +GET: /v1/clusters/6490c84c-db09-431e-ad31-f901ea701fdc/nodegroups?sort_key=id&sort_dir=asc&limit=1&marker=e039de47-60e1-4e20-946b-a46a2b7cec6c {} +GOT:{'nodegroups': []} +GET: /v1/clusters/95e5fed8-bce4-4255-9e45-334f98206bbd/nodegroups/ {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} +GET: /v1/clusters/290e127c-022b-48ed-94b8-a655fab8de0d/nodegroups/e16ed68c-4cb5-481c-ab77-2ad73d0de89e {} +GOT:{'id': 1, 'uuid': 'e16ed68c-4cb5-481c-ab77-2ad73d0de89e', 'name': 'test-worker', 'cluster_id': '290e127c-022b-48ed-94b8-a655fab8de0d', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/290e127c-022b-48ed-94b8-a655fab8de0d/nodegroups/e16ed68c-4cb5-481c-ab77-2ad73d0de89e', 'rel': 'self'}, {'href': 'http://localhost/clusters/290e127c-022b-48ed-94b8-a655fab8de0d/nodegroups/e16ed68c-4cb5-481c-ab77-2ad73d0de89e', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': 'test_image', 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:15:16.943094+00:00', 'updated_at': None} +GET: /v1/clusters/c4ace696-6e7e-4aac-a7d5-533105c2c82d/nodegroups/37dfeb49-9e2d-46e5-a9b0-5343ac1f8769 {} +GOT:{'id': 3, 'uuid': '37dfeb49-9e2d-46e5-a9b0-5343ac1f8769', 'name': 'test-worker', 'cluster_id': 'c4ace696-6e7e-4aac-a7d5-533105c2c82d', 'project_id': 'c4ace696-6e7e-4aac-a7d5-533105c2c82d', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/c4ace696-6e7e-4aac-a7d5-533105c2c82d/nodegroups/37dfeb49-9e2d-46e5-a9b0-5343ac1f8769', 'rel': 'self'}, {'href': 'http://localhost/clusters/c4ace696-6e7e-4aac-a7d5-533105c2c82d/nodegroups/37dfeb49-9e2d-46e5-a9b0-5343ac1f8769', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': 'test_image', 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:15:17.043339+00:00', 'updated_at': None} +GET: /v1/clusters/7d7c6970-840b-4c9e-84ac-07799ac30f23/nodegroups/non_default_ng {} +GOT:{'id': 3, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'cluster_id': '7d7c6970-840b-4c9e-84ac-07799ac30f23', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label2': 'value2', 'label4': 'value4'}, 'links': [{'href': 'http://localhost/v1/clusters/7d7c6970-840b-4c9e-84ac-07799ac30f23/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/7d7c6970-840b-4c9e-84ac-07799ac30f23/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:15:17.151719+00:00', 'updated_at': None} +GET: /v1/clusters/15bb77ad-eb57-4e6b-bf7b-ca7db2327d95/nodegroups/non_default_ng {} +GOT:{'id': 3, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'non_default_ng', 'cluster_id': '15bb77ad-eb57-4e6b-bf7b-ca7db2327d95', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {'label1': 'value3', 'label4': 'value4'}, 'links': [{'href': 'http://localhost/v1/clusters/15bb77ad-eb57-4e6b-bf7b-ca7db2327d95/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/15bb77ad-eb57-4e6b-bf7b-ca7db2327d95/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 3, 'role': 'worker', 'min_node_count': 1, 'max_node_count': None, 'is_default': True, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {'label1': 'value1'}, 'labels_added': {'label4': 'value4'}, 'labels_skipped': {'label2': 'value2'}, 'created_at': '2026-01-22T07:15:17.197354+00:00', 'updated_at': None} +GET: /v1/clusters/12b64570-c974-46c0-8878-a3f640c8721a/nodegroups/not-here {} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters", "detail": "ClusterTemplate e74c40e0-d825-11e2-a28f-0800200c9a66 is referenced by one or multiple clusters.", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] -GOT:Response: 200 OK +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Nodegroup not-here could not be found", "detail": "Nodegroup not-here could not be found.", "links": []}]} +GET: /v1/clusters/8159bce0-3209-47c3-9f40-9aa091210a96/nodegroups/b0c0bb7f-5d9d-4167-8ca3-bc5c2536b5f8 {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_wrong_microversion +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestListNodegroups.test_get_one_wrong_microversion ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_all +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_all ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_one +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_internal_attr +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_internal_attr ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_min_node_count +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_min_node_count ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_non_existent_property +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_non_existent_property ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_ok ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_max_node_count_failed +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_max_node_count_failed ... ok + +GET: /v1/clusters/6874fd89-74fe-4140-926e-9b7e2c7e8680/nodegroups {} +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": true, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:49.519761+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': True, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:49.519761+00:00', 'updated_at': '2026-01-22T07:06:49.547362+00:00'} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/docker_storage_driver', 'value': 'devicemapper', 'op': 'replace'}] -GOT:Response: 200 OK +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow nodegroup:get_all to be performed", "detail": "Policy doesn't allow nodegroup:get_all to be performed.", "links": []}]} +GET: /v1/clusters/94bcd03e-5e1a-4b02-ad31-3df33a763d10/nodegroups/9b43fb54-78fb-4843-b88d-678a05e055c0 {} +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:49.580405+00:00", "updated_at": null} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}] -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/hidden', 'value': True, 'op': 'replace'}]magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_success -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_hidden_cluster_template_success ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_not_found -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_fail -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_fail ... ok -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_success -magnum.tests.unit.api.controllers.v1.test_cluster_template.TestPatch.test_update_public_cluster_template_success ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation ... ok -magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_cached -magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_cached ... ok -magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_noauth -magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_noauth ... ok -magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_region -magnum.tests.unit.common.test_clients.ClientsTest.test_clients_nova_region ... ok -magnum.tests.unit.common.test_clients.ClientsTest.test_magnum_url -magnum.tests.unit.common.test_clients.ClientsTest.test_magnum_url ... ok -magnum.tests.unit.common.test_clients.ClientsTest.test_url_for -magnum.tests.unit.common.test_clients.ClientsTest.test_url_for ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_not_found -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_not_found ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_empty -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_empty ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_exception -magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_exception ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_conflict -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_conflict ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_notfound -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_notfound ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name_notfound -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name_notfound ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_conflict -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_conflict ... ok - -GOT:Response: 200 OK +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow nodegroup:get to be performed", "detail": "Policy doesn't allow nodegroup:get to be performed.", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/node_count', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": false, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": true, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:49.678272+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': True, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:49.678272+00:00', 'updated_at': '2026-01-22T07:06:49.698958+00:00'} -PATCH: /v1/clustertemplates/9d099e36-7ba3-4e85-9ca0-d4a9ade9805b [{'path': '/name', 'value': 'cluster_model_example_B', 'op': 'add'}] -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/node_count' is an internal attribute and can not be updated", "detail": "'/node_count' is an internal attribute and can not be updated", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/min_node_count', 'op': 'remove'}] +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "ClusterTemplate 9d099e36-7ba3-4e85-9ca0-d4a9ade9805b could not be found", "detail": "ClusterTemplate 9d099e36-7ba3-4e85-9ca0-d4a9ade9805b could not be found.", "links": []}]} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/public', 'value': True, 'op': 'replace'}] -GOT:Response: 200 OK +{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 0, "max_node_count": 5, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:15:17.437816+00:00", "updated_at": null} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} +GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 0, 'max_node_count': 5, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:15:17.437816+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/not_there', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "name": "cluster_model_example_A", "coe": "kubernetes", "image_id": "nerdherd", "flavor_id": "m1.magnum", "master_flavor_id": "m1.magnum", "dns_nameserver": "8.8.1.1", "keypair_id": "test", "external_network_id": "public", "fixed_network": "private", "fixed_subnet": "private", "network_driver": null, "apiserver_port": 8080, "docker_volume_size": 20, "cluster_distro": "fedora-coreos", "links": [{"href": "http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "http_proxy": "fake_http_proxy", "https_proxy": "fake_https_proxy", "no_proxy": "fake_no_proxy", "volume_driver": "cinder", "registry_enabled": false, "labels": {"key1": "val1", "key2": "val2"}, "tls_disabled": false, "public": true, "server_type": "vm", "insecure_registry": "10.0.0.1:5000", "docker_storage_driver": "devicemapper", "master_lb_enabled": true, "floating_ip_enabled": true, "project_id": "fake_project", "user_id": "fake_user", "hidden": false, "tags": "", "driver": "", "created_at": "2026-01-22T07:06:49.769955+00:00", "updated_at": null} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'cluster_model_example_A', 'coe': 'kubernetes', 'image_id': 'nerdherd', 'flavor_id': 'm1.magnum', 'master_flavor_id': 'm1.magnum', 'dns_nameserver': '8.8.1.1', 'keypair_id': 'test', 'external_network_id': 'public', 'fixed_network': 'private', 'fixed_subnet': 'private', 'network_driver': None, 'apiserver_port': 8080, 'docker_volume_size': 20, 'cluster_distro': 'fedora-coreos', 'links': [{'href': 'http://localhost/v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'volume_driver': 'cinder', 'registry_enabled': False, 'labels': {'key1': 'val1', 'key2': 'val2'}, 'tls_disabled': False, 'public': True, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'docker_storage_driver': 'devicemapper', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'project_id': 'fake_project', 'user_id': 'fake_user', 'hidden': False, 'tags': '', 'driver': '', 'created_at': '2026-01-22T07:06:49.769955+00:00', 'updated_at': '2026-01-22T07:06:49.785282+00:00'} -DELETE: /v1/federations/73ff9ecd-e2fb-4f2b-b806-f823491790ee -GOT:Response: 204 No Content +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Couldn't apply patch '[{'path': '/not_there', 'op': 'remove'}]'", "detail": "Couldn't apply patch '[{'path': '/not_there', 'op': 'remove'}]'. Reason: can't remove a non-existent object 'not_there'", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/max_node_count', 'op': 'remove'}] +GOT:Response: 202 Accepted +Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version - -GET: /v1/federations/73ff9ecd-e2fb-4f2b-b806-f823491790ee {} -GOT:Response: 404 Not Found +{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": null, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:15:17.542765+00:00", "updated_at": null} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} +GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': None, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:15:17.542765+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/max_node_count', 'value': 1, 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation 73ff9ecd-e2fb-4f2b-b806-f823491790ee could not be found", "detail": "Federation 73ff9ecd-e2fb-4f2b-b806-f823491790ee could not be found.", "links": []}]} -DELETE: /v1/federations/7266815d-fb5c-40a2-9118-a62750d5d2fd -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "max_node_count for nodegroup1 is invalid (min_node_count (2) should be less or equal to max_node_count (1))", "detail": "max_node_count for nodegroup1 is invalid (min_node_count (2) should be less or equal to max_node_count (1)).", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/min_node_count', 'value': 3, 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation 7266815d-fb5c-40a2-9118-a62750d5d2fd could not be found", "detail": "Federation 7266815d-fb5c-40a2-9118-a62750d5d2fd could not be found.", "links": []}]} -DELETE: /v1/federations/federation-example -GOT:Response: 204 No Content +{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2))", "detail": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2)).", "links": []}]}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_min_node_count_failed +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_min_node_count_failed ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_node_count_failed +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_node_count_failed ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok_by_name +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok_by_name ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_wrong_microversion +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_wrong_microversion ... ok +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_update_nodegroup_as_admin +magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_update_nodegroup_as_admin ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota ... ok +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout ... ok + +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/node_count', 'value': 3, 'op': 'replace'}] +GOT:Response: 400 Bad Request +Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version - -DELETE: /v1/federations/foo -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/node_count' is an internal attribute and can not be updated", "detail": "'/node_count' is an internal attribute and can not be updated", "links": []}]} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Federation foo could not be found", "detail": "Federation foo could not be found.", "links": []}]}magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name_not_found -magnum.tests.unit.api.controllers.v1.test_federation.TestDelete.test_delete_federation_with_name_not_found ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_cluster_already_member -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_cluster_already_member ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_non_existent_cluster -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_join_non_existent_cluster ... ok -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_notfound -magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_notfound ... ok -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers ... ok -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_already_deleted -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_already_deleted ... ok -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_no_candidate -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_no_candidate ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_join -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_join ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_unjoin -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_member_unjoin ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_existent_cluster -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_existent_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_member_cluster -magnum.tests.unit.api.controllers.v1.test_federation.TestPatch.test_unjoin_non_member_cluster ... ok -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceEnforcement.test_policy_disallow_get_all -magnum.tests.unit.api.controllers.v1.test_magnum_service.TestMagnumServiceEnforcement.test_policy_disallow_get_all ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_all -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_all ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_one -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestNodeGroupPolicyEnforcement.test_policy_disallow_get_one ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_internal_attr -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_internal_attr ... ok - -PATCH: /v1/federations/9dcbd6e0-0734-447d-b797-ac197ac9ed9e [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] -GOT:Response: 409 Conflict +{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:15:17.979371+00:00", "updated_at": null} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} +GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': 4, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:15:17.979371+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "A cluster with UUID 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is already a member of the federation federation-example", "detail": "A cluster with UUID 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is already a member of the federation federation-example.", "links": []}]} -PATCH: /v1/federations/1de7bec4-e02c-489a-a997-287c37856000 [{'path': '/member_ids', 'value': 'ef32e3b8-ea7b-4633-baaa-10817e7541f3', 'op': 'add'}] -GOT:Response: 404 Not Found +{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:15:18.032909+00:00", "updated_at": null} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} +GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': 4, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:15:18.032909+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} +PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} +PATCH: /v1/clusters/89c7110e-f2e9-438b-beae-2202464c329d/nodegroups/890dc595-4e10-49c9-8e84-896f062adf59 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 50, "uuid": "890dc595-4e10-49c9-8e84-896f062adf59", "name": "nodegroup1", "cluster_id": "89c7110e-f2e9-438b-beae-2202464c329d", "project_id": "fake", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/89c7110e-f2e9-438b-beae-2202464c329d/nodegroups/890dc595-4e10-49c9-8e84-896f062adf59", "rel": "self"}, {"href": "http://localhost/clusters/89c7110e-f2e9-438b-beae-2202464c329d/nodegroups/890dc595-4e10-49c9-8e84-896f062adf59", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:15:18.129214+00:00", "updated_at": null} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} +GOT:Response: 201 Created Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster ef32e3b8-ea7b-4633-baaa-10817e7541f3 could not be found", "detail": "Cluster ef32e3b8-ea7b-4633-baaa-10817e7541f3 could not be found.", "links": []}]} -PATCH: /v1/federations/aaa2ac72-acce-43f2-9a20-4968d738cd36 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] -GOT:Response: 202 Accepted +{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:15:18.163751+00:00", "updated_at": null} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': -10} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "aaa2ac72-acce-43f2-9a20-4968d738cd36"} -GET: /v1/federations/aaa2ac72-acce-43f2-9a20-4968d738cd36 {} -GOT:{'uuid': 'aaa2ac72-acce-43f2-9a20-4968d738cd36', 'name': 'federation-example', 'hostcluster_id': 'fake_master', 'member_ids': ['5d12f6fd-a196-4bf0-ae4c-1f639a523a52'], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/aaa2ac72-acce-43f2-9a20-4968d738cd36', 'rel': 'self'}, {'href': 'http://localhost/federations/aaa2ac72-acce-43f2-9a20-4968d738cd36', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:49.952922+00:00', 'updated_at': '2026-01-22T07:06:50.158725+00:00'} -PATCH: /v1/federations/63f8e052-9de7-4b66-a000-da90d06514aa [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'remove'}] -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute hard_limit", "detail": "Invalid input for field/attribute hard_limit. Value: '-10'. Value should be greater or equal to 0", "links": []}]}magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_hard_limit +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_hard_limit ... ok +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_with_stack_not_found +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_with_stack_not_found ... ok +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get ... ok +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_exceed_manifest_size +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_exceed_manifest_size ... ok +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_unsupported_scheme +magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_unsupported_scheme ... ok +magnum.tests.unit.common.test_utils.GeneratePasswordTestCase.test_generate_password +magnum.tests.unit.common.test_utils.GeneratePasswordTestCase.test_generate_password ... ok +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... ok +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_resource +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_invalid_resource ... ok +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree +magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_no_project_id +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_no_project_id ... ok +magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_k8s_quantity +magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_k8s_quantity ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_openstasck_ca +magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_openstasck_ca ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_not_critical +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_not_critical ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_with_non_ca +magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_with_non_ca ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed_but_not_critical +magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed_but_not_critical ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed_but_not_critical +magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed_but_not_critical ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_cert_sign +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_cert_sign ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_crl_sign +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_crl_sign ... ok +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_without_ca_usage +magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_without_ca_usage ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_project_id_not_found +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_quota_project_id_not_found ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_in_cache +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_in_cache ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_notin_cache +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_notin_cache ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_set_file_permissions +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_set_file_permissions ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_temp_no_dir +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_temp_no_dir ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_zero_quota +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_create_zero_quota ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_if_raise_error +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_if_raise_error ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_without_cert_ref +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_without_cert_ref ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files_none +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files_none ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_ca_cert +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_ca_cert ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_with_error +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_with_error ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_without_name +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_without_name ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_client_cert +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_client_cert ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate_ca_cert_type +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate_ca_cert_type ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_magnum_cert +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_magnum_cert ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_delete_quota +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_delete_quota ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate ... ok +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate_without_cluster_name +magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate_without_cluster_name ... ok +magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_create_trustee_and_trust +magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_create_trustee_and_trust ... ok +magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_create_trustee_and_trust_with_error +magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_create_trustee_and_trust_with_error ... ok +magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust +magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust ... ok +magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust_without_trust_id +magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust_without_trust_id ... ok +magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust_without_trustee_user_id +magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust_without_trustee_user_id ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_empty +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_empty ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants_false +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_tenants_false ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_with_pagination_marker +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_all_with_pagination_marker ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_not_all_tenants +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_admin_not_all_tenants ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_conflict +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_conflict ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_non_admin +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_non_admin ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_non_admin_context +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_non_admin_context ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_with_lb +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_with_lb ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_pagination_limit +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_all_with_pagination_limit ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_failure +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_failure ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_no_config_default +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_no_config_default ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_success +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_success ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_not_authorized +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_not_authorized ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_with_config_default +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_get_one_with_config_default ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_one +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_one ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create ... ok +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_handles_bad_request +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_handles_bad_request ... ok + +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'invalid-res', 'hard_limit': 10} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"uuid": "63f8e052-9de7-4b66-a000-da90d06514aa"} -GET: /v1/federations/63f8e052-9de7-4b66-a000-da90d06514aa {} -GOT:{'uuid': '63f8e052-9de7-4b66-a000-da90d06514aa', 'name': 'federation-example', 'hostcluster_id': 'fake_master', 'member_ids': [], 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully.', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/63f8e052-9de7-4b66-a000-da90d06514aa', 'rel': 'self'}, {'href': 'http://localhost/federations/63f8e052-9de7-4b66-a000-da90d06514aa', 'rel': 'bookmark'}], 'created_at': '2026-01-22T07:06:50.183405+00:00', 'updated_at': '2026-01-22T07:06:50.195764+00:00'} -PATCH: /v1/federations/2cf0ce0b-38cf-40cf-83d4-67fe26506ff9 [{'path': '/member_ids', 'value': '92a11dc5-336f-494e-bb22-f76a2d363de3', 'op': 'remove'}] -GOT:Response: 404 Not Found +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Invalid input for field/attribute resource", "detail": "Invalid input for field/attribute resource. Value: 'invalid-res'. Value should be one of: Cluster", "links": []}]} +POST: /v1/quotas {'id': 42, 'resource': 'Cluster', 'hard_limit': 10} +GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 92a11dc5-336f-494e-bb22-f76a2d363de3 could not be found", "detail": "Cluster 92a11dc5-336f-494e-bb22-f76a2d363de3 could not be found.", "links": []}]} -PATCH: /v1/federations/fed99396-c237-4b6c-ab95-dba62b731917 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'remove'}] +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Must provide a valid project ID", "detail": "Must provide a valid project ID.", "links": []}]} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is not a member of the federation federation-example", "detail": "Cluster 5d12f6fd-a196-4bf0-ae4c-1f639a523a52 is not a member of the federation federation-example.", "links": []}]} -GET: /v1/mservices {} -GOT:Response: 403 Forbidden +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "The project_id fake_project could not be found", "detail": "The project_id fake_project could not be found.", "links": []}]} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 0} +GOT:Response: 201 Created Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow magnum-service:get_all to be performed", "detail": "Policy doesn't allow magnum-service:get_all to be performed.", "links": []}]} -GET: /v1/clusters/71775e0c-f511-4785-bce8-209c8f5d97ff/nodegroups {} -GOT:Response: 403 Forbidden +{"id": 42, "hard_limit": 0, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:15:18.473403+00:00", "updated_at": null} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} +GOT:Response: 201 Created Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow nodegroup:get_all to be performed", "detail": "Policy doesn't allow nodegroup:get_all to be performed.", "links": []}]} -GET: /v1/clusters/3af94b04-29c5-486e-9784-bc21f24ebc32/nodegroups/99c878c0-d847-4f86-a5ed-c0279fb251da {} -GOT:Response: 403 Forbidden -Content-Type: application/json +{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:15:18.541445+00:00", "updated_at": null} +DELETE: /v1/quotas/fake_project/Cluster +GOT:Response: 204 No Content Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Policy doesn't allow nodegroup:get to be performed", "detail": "Policy doesn't allow nodegroup:get to be performed.", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/node_count', 'op': 'remove'}] -GOT:Response: 400 Bad Request + +GET: /v1/quotas/fake_project/Cluster {} +GOT:Response: 200 OK Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/node_count' is an internal attribute and can not be updated", "detail": "'/node_count' is an internal attribute and can not be updated", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/min_node_count', 'op': 'remove'}] -GOT:Response: 202 Accepted +{"hard_limit": 20, "project_id": "fake_project", "resource": "Cluster"} +GET: /v1/quotas {} +GOT:{'quotas': []} +GET: /v1/quotas?all_tenants=True {} +GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'proj-id-0', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:18.685545+00:00', 'updated_at': None}, {'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:18.686829+00:00', 'updated_at': None}, {'id': 3, 'hard_limit': 10, 'project_id': 'proj-id-2', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:18.687789+00:00', 'updated_at': None}, {'id': 4, 'hard_limit': 10, 'project_id': 'proj-id-3', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:18.688665+00:00', 'updated_at': None}]} +GET: /v1/quotas?all_tenants=False {} +GOT:{'quotas': [{'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:18.764984+00:00', 'updated_at': None}]} +GET: /v1/quotas?limit=3&marker=3&all_tenants=True {} +GOT:{'quotas': [{'id': 4, 'hard_limit': 10, 'project_id': 'proj-id-3', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:18.859839+00:00', 'updated_at': None}]} +GET: /v1/quotas {} +GOT:{'quotas': [{'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:18.928908+00:00', 'updated_at': None}]} +GET: /v1/quotas {} +GOT:{'quotas': [{'id': 3, 'hard_limit': 10, 'project_id': 'proj-id-2', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:18.972595+00:00', 'updated_at': None}]} +GET: /v1/quotas?all_tenants=True {} +GOT:{'quotas': []} +GET: /v1/quotas?limit=2&all_tenants=True {} +GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'proj-id-0', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:19.059860+00:00', 'updated_at': None}, {'id': 2, 'hard_limit': 10, 'project_id': 'proj-id-1', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:19.060945+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/quotas?sort_key=id&sort_dir=asc&limit=2&marker=2'} +GET: /v1/quotas/fake_project/Cluster {} +GOT:{'id': 1, 'hard_limit': 10, 'project_id': 'fake_project', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:19.105925+00:00', 'updated_at': None} +GET: /v1/quotas/fake_project/Cluster {} +GOT:Response: 200 OK Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 0, "max_node_count": 5, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:50.382251+00:00", "updated_at": null}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_min_node_count -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_min_node_count ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_non_existent_property -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_non_existent_property ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_remove_ok ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_max_node_count_failed -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_max_node_count_failed ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_min_node_count_failed -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_min_node_count_failed ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_node_count_failed -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_node_count_failed ... ok - -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} -GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 0, 'max_node_count': 5, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:50.382251+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/not_there', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"hard_limit": 20, "project_id": "fake_project", "resource": "Cluster"} +GET: /v1/quotas/invalid_proj/invalid_res {} +GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Couldn't apply patch '[{'path': '/not_there', 'op': 'remove'}]'", "detail": "Couldn't apply patch '[{'path': '/not_there', 'op': 'remove'}]'. Reason: can't remove a non-existent object 'not_there'", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/max_node_count', 'op': 'remove'}] -GOT:Response: 202 Accepted +{"errors": [{"request_id": "", "code": "client", "status": 403, "title": "Not authorized", "detail": "Not authorized.", "links": []}]} +GET: /v1/quotas/fake_project/Cluster {} +GOT:Response: 200 OK Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": null, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:50.465267+00:00", "updated_at": null} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} -GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': None, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:50.465267+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/max_node_count', 'value': 1, 'op': 'replace'}] -GOT:Response: 409 Conflict +{"hard_limit": 15, "project_id": "fake_project", "resource": "Cluster"} +GET: /v1/quotas {} +GOT:{'quotas': [{'id': 1, 'hard_limit': 10, 'project_id': 'fake_project', 'resource': 'Cluster', 'created_at': '2026-01-22T07:15:19.258622+00:00', 'updated_at': None}]} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 5} +GOT:Response: 201 Created Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "max_node_count for nodegroup1 is invalid (min_node_count (2) should be less or equal to max_node_count (1))", "detail": "max_node_count for nodegroup1 is invalid (min_node_count (2) should be less or equal to max_node_count (1)).", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/min_node_count', 'value': 3, 'op': 'replace'}] -GOT:Response: 409 Conflict +{"id": 42, "hard_limit": 5, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:15:19.304890+00:00", "updated_at": null} +PATCH: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 20} +GOT:Response: 202 Accepted Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 409, "title": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2))", "detail": "min_node_count for nodegroup1 is invalid (min_node_count (3) should be less or equal to node_count (2)).", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/node_count', 'value': 3, 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"id": 42, "hard_limit": 20, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:15:19.304890+00:00", "updated_at": "2026-01-22T07:15:19.320186+00:00"} +POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} +GOT:Response: 201 Created Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "'/node_count' is an internal attribute and can not be updated", "detail": "'/node_count' is an internal attribute and can not be updated", "links": []}]} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] -GOT:Response: 202 Accepted +{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:15:19.353742+00:00", "updated_at": null} +PATCH: /v1/quotas {'project_id': 'not-found', 'hard_limit': 20, 'resource': 'Cluster'} +GOT:Response: 404 Not Found Content-Type: application/json Openstack-Api-Maximum-Version: container-infra 1.11 Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 +Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:50.614991+00:00", "updated_at": null} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} -GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': 4, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:50.614991+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'}magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok_by_name -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_ok_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_wrong_microversion -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_replace_wrong_microversion ... ok -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_update_nodegroup_as_admin -magnum.tests.unit.api.controllers.v1.test_nodegroup.TestPatch.test_update_nodegroup_as_admin ... ok +{"errors": [{"request_id": "", "code": "client", "status": 404, "title": "Quota could not be found: project_id not-found resource Cluster", "detail": "Quota could not be found: project_id not-found resource Cluster.", "links": []}]}magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota_not_found +magnum.tests.unit.api.controllers.v1.test_quota.TestQuota.test_patch_quota_not_found ... ok magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_frombasetype_no_value magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_frombasetype_no_value ... ok magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value ... ok magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_cert_failed +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_cert_failed ... ok magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values magnum.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_environment +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_environment ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_invalid_single_dns +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_invalid_single_dns ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_multi_dns +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_multi_dns ... ok +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_single_dns +magnum.tests.unit.api.controllers.v1.test_types.TestDNSListType.test_valid_single_dns ... ok magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_internal_attr magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_internal_attr ... ok magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value @@ -13584,226 +13682,294 @@ magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr ... ok magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_invalid_unicode_name +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_invalid_unicode_name ... ok magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr ... ok magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_trust_failed +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_trust_failed ... ok magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path ... ok magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op ... ok magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_adopt_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_adopt_complete ... ok magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_update_mandatory_attr magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_update_mandatory_attr ... ok magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches magnum.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches ... ok -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout ... ok magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype ... ok magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype_no_value magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_frombasetype_no_value ... ok -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_with_stack_not_found -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_with_stack_not_found ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_check_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_check_complete ... ok magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr ... ok -magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_admin_context_succeeds -magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_admin_context_succeeds ... ok magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr magnum.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_invalid_values -magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_invalid_values ... ok -magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_user_context_fails -magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_user_context_fails ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_multitype_tostring -magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_multitype_tostring ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_valid_values -magnum.tests.unit.api.controllers.v1.test_types.TestMultiType.test_valid_values ... ok -magnum.tests.unit.common.test_profiler.TestProfiler.test_all_public_methods_are_traced -magnum.tests.unit.common.test_profiler.TestProfiler.test_all_public_methods_are_traced ... ok magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype ... ok -magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler -magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler ... ok magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype_no_value magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_frombasetype_no_value ... ok -magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler_without_osprofiler -magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler_without_osprofiler ... ok -magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_none -magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_none ... ok -magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_not_none -magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_not_none ... ok -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_restore_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_restore_complete ... ok magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name ... ok -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_exceed_manifest_size -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_exceed_manifest_size ... ok -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_unsupported_scheme -magnum.tests.unit.common.test_urlfetch.TestUrlFetch.test_get_unsupported_scheme ... ok magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name magnum.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid -magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_check_exit_code_boolean -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_check_exit_code_boolean ... ok -magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid -magnum.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_already_exist -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_already_exist ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_not_exist -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_add_attr_not_exist ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_name -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_name ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_uuid -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_by_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_multi_exist -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_multi_exist ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_no_retry_on_success -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_no_retry_on_success ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_non_exist -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_openstack_resource_non_exist ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_name -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_name ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_uuid -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_resource_with_uuid ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ... ok -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir -magnum.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ... ok -magnum.tests.unit.api.test_expose.TestExpose.test_expose_with_rest_content_types -magnum.tests.unit.api.test_expose.TestExpose.test_expose_with_rest_content_types ... ok -magnum.tests.unit.api.test_expose.TestExpose.test_expose_without_rest_content_types -magnum.tests.unit.api.test_expose.TestExpose.test_expose_without_rest_content_types ... ok -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ... ok -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_clientfault -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_clientfault ... ok -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_serverfault -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_server_debug_on_serverfault ... ok -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback -magnum.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... ok -magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_http -magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_http ... ok -magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_http_config_workers -magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_http_config_workers ... ok -magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https -magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https ... ok -magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_cert -magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_cert ... ok -magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_key -magnum.tests.unit.cmd.test_api.TestMagnumAPI.test_api_https_no_key ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert ... ok -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert_none_values -magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanCert.test_barbican_cert_none_values ... ok -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_barbican_cert_manager -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_barbican_cert_manager ... ok -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_local_cert_manager -magnum.tests.unit.common.cert_manager.test_cert_manager.TestCertManager.test_local_cert_manager ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_with_fail -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_with_fail ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_intermediate -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_intermediate ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_pkp -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_delete_cert_without_pkp ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_cert_fail -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_cert_fail ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_intermediates_fail -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_intermediates_fail ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_pkp_fail -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_pkp_fail ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_private_key_fail -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_with_loading_private_key_fail ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_intermediate -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_intermediate ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_pkp -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_get_cert_without_pkp ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert ... ok -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert_with_io_error -magnum.tests.unit.common.cert_manager.test_local.TestLocalManager.test_store_cert_with_io_error ... ok -magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairCert.test_x509keypair_cert -magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairCert.test_x509keypair_cert ... ok +magnum.tests.unit.api.test_app.TestAppConfig.test_get_pecan_config +magnum.tests.unit.api.test_app.TestAppConfig.test_get_pecan_config ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_invalid_network +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_invalid_network ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_multiple_valid_network +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_multiple_valid_network ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_valid_network +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_external_network_with_valid_network ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_invalid_network +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_invalid_network ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_multiple_valid_network +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_multiple_valid_network ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_valid_network +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_network_with_valid_network ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_invalid_subnet +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_invalid_subnet ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_multiple_valid_subnet +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_multiple_valid_subnet ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_valid_subnet +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_fixed_subnet_with_valid_subnet ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_invalid_flavor +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_invalid_flavor ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_none_flavor +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_none_flavor ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_vaild_flavor +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_flavor_with_vaild_flavor ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_when_user_forbidden +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_when_user_forbidden ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_forbidden_image +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_forbidden_image ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_multi_images_same_name +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_multi_images_same_name ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_nonexist_image_by_id +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_nonexist_image_by_id ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_resume_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_resume_complete ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_nonexist_image_by_name +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_nonexist_image_by_name ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_valid_image_by_id +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_valid_image_by_id ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_valid_image_by_name +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_with_valid_image_by_name ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_without_os_distro +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_image_without_os_distro ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_invalid_keypair +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_invalid_keypair ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_no_keypair +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_no_keypair ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_valid_keypair +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_keypair_with_valid_keypair ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_labels_main_no_label +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_labels_main_no_label ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_cluster +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_cluster ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_invalid_fixed_subnet +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_invalid_fixed_subnet ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_invalid_flavor +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_invalid_flavor ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_valid_fixed_subnet +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_with_valid_fixed_subnet ... ok +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_without_validator +magnum.tests.unit.api.test_attr_validator.TestAttrValidator.test_validate_os_resources_without_validator ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_not_supported +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_not_supported ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_supported +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_cluster_type_supported ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_create ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_rollback_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_rollback_complete ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_all_allowed_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_config_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_config_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_invalid_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_default_invalid_create ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_snapshot_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_snapshot_complete ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_invalid_coe_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_invalid_coe_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_not_allowed_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_one_allowed_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_network_driver_types_two_allowed_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_invalid +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_invalid ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_bm +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_bm ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_vm +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_server_type_valid_vm ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_invalid_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_invalid_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_add_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_add_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_replace_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_not_supported_replace_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_remove_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_remove_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_add_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_add_update ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_update_complete +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_update_complete ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_replace_update +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_supported_replace_update ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_valid_create +magnum.tests.unit.api.test_validation.TestValidation.test_enforce_volume_driver_types_valid_create ... ok +magnum.tests.unit.api.test_validation.TestValidation.test_validate_cluster_properties +magnum.tests.unit.api.test_validation.TestValidation.test_validate_cluster_properties ... ok +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_revision +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_revision ... ok +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_stamp +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_stamp ... ok +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_upgrade +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_upgrade ... ok +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_version +magnum.tests.unit.cmd.test_db_manage.TestMagnumDbManage.test_db_manage_version ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_failure +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_failure ... ok +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_success +magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_success ... ok +magnum.tests.unit.conductor.handlers.test_conductor_listener.TestHandler.test_ping_conductor +magnum.tests.unit.conductor.handlers.test_conductor_listener.TestHandler.test_ping_conductor ... ok +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action ... ok +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_copies_object +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_copies_object ... ok +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_on_raise +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_on_raise ... ok +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action ... ok +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action_on_raise +magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action_on_raise ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_no_timeout_specified +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_no_timeout_specified ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_timeout_is_zero +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_timeout_is_zero ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition ... ok +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_with_details_and_path +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_with_details_and_path ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_no_discoveryurl +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_no_discoveryurl ... ok +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_without_details_and_path +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_correct_arg_without_details_and_path ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_with_discovery +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_with_discovery ... ok +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_none_arg +magnum.tests.unit.cmd.test_driver_manage.TestMagnumDriverManage.test_none_arg ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_delete_cert +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_delete_cert ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_only_required +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_only_required ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert_no_registration +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_get_cert_no_registration ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert ... ok +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert_failure +magnum.tests.unit.common.cert_manager.test_barbican.TestBarbicanManager.test_store_cert_failure ... ok +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCert.test_get_decrypted_private_key +magnum.tests.unit.common.cert_manager.test_cert_manager.TestCert.test_get_decrypted_private_key ... ok +magnum.tests.unit.common.cert_manager.test_local.TestLocalCert.test_local_cert +magnum.tests.unit.common.cert_manager.test_local.TestLocalCert.test_local_cert ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_with_registry +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_with_registry ... ok /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'fake-uuid'" 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 warnings.warn("%s is an invalid UUID. Using UUIDFields " magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_delete_cert magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_delete_cert ... ok /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"'fake-uuid'" 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 warnings.warn("%s is an invalid UUID. Using UUIDFields " +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_apiserver_port +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_apiserver_port ... ok magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_get_cert magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_get_cert ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_retry_on_failure -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_retry_on_failure ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_discovery_url +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_discovery_url ... ok magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_store_cert magnum.tests.unit.common.cert_manager.test_x509keypair_cert_manager.TestX509keypairManager.test_store_cert ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_safe_rstrip -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_safe_rstrip ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_create_no_permission -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_create_no_permission ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_safe_rstrip_not_raises_exceptions -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_safe_rstrip_not_raises_exceptions ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_delete_no_permission -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_delete_no_permission ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_unknown_kwargs_raises_error -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_unknown_kwargs_raises_error ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_detail_list_no_permission -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_detail_list_no_permission ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_validate_and_normalize_mac -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_validate_and_normalize_mac ... ok -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_validate_and_normalize_mac_invalid_format -magnum.tests.unit.common.test_utils.ExecuteTestCase.test_validate_and_normalize_mac_invalid_format ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_no_permission ... ok -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... ok -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_reader -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_get_reader ... ok -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree -magnum.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ... ok -magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_decrypt_key -magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_decrypt_key ... ok -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_update_no_permission -magnum.tests.unit.common.policies.test_federation_policy.TestFederationPolicy.test_update_no_permission ... ok -magnum.tests.unit.common.policies.test_magnum_service_policy.TestMagnumServicePolicy.test_get_all_no_permission -magnum.tests.unit.common.policies.test_magnum_service_policy.TestMagnumServicePolicy.test_get_all_no_permission ... ok -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_create_no_permission -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_create_no_permission ... ok -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_delete_no_permission -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_delete_no_permission ... ok -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_all_no_permission -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_all_no_permission ... ok -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_no_permission -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_get_no_permission ... ok -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_update_no_permission -magnum.tests.unit.common.policies.test_nodegroup_policy.TestNodeGroupPolicy.test_update_no_permission ... ok -magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_admin -magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_admin ... ok -magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_no_permission -magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_no_permission ... ok -magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_reader -magnum.tests.unit.common.policies.test_stats_policy.TestStatsPolicy.test_stat_reader ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_dns +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_dns ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_docker_storage_driver +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_docker_storage_driver ... ok +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_create_no_permission +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_create_no_permission ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_server_image +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_server_image ... ok +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_update_stack +magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_update_stack ... ok +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_get_no_permission ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create ... ok +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_update_no_permission +magnum.tests.unit.common.policies.test_certificate_policy.TestCertifiactePolicy.test_update_no_permission ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed ... ok +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_create_no_permission +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_create_no_permission ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed_bad_request +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed_bad_request ... ok +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_delete_no_permission +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_delete_no_permission ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete ... ok +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_all_no_permission +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_all_no_permission ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_failed +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_failed ... ok +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_get_no_permission ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_and_ng_not_found +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_and_ng_not_found ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_not_found +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_not_found ... ok +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_update_no_permission +magnum.tests.unit.common.policies.test_cluster_policy.TestClusterPolicy.test_update_no_permission ... ok +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_create_no_permission +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_create_no_permission ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_operation_ongoing +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_operation_ongoing ... ok +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_delete_no_permission +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_delete_no_permission ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_udpate +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_udpate ... ok +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_all_no_permission +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_all_no_permission ... ok +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_no_permission +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_get_no_permission ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed ... ok +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_update_no_permission +magnum.tests.unit.common.policies.test_quota_policy.TestQuotaPolicy.test_update_no_permission ... ok +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed_bad_request +magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed_bad_request ... ok magnum.tests.unit.common.test_context.ContextTestCase.test_context magnum.tests.unit.common.test_context.ContextTestCase.test_context ... ok magnum.tests.unit.common.test_context.ContextTestCase.test_context_with_roles @@ -13824,70 +13990,198 @@ magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_client_with_no_credentials ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_client_with_password magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_client_with_password ... ok +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_client_with_password_legacy magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_client_with_password_legacy ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_client_with_token magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_client_with_token ... ok +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack_with_error +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack_with_error ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_create_trust_with_all_roles magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_create_trust_with_all_roles ... ok +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_create_trust_with_limit_roles magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_create_trust_with_limit_roles ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_create_trustee magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_create_trustee ... ok +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack_with_error +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack_with_error ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_delete_trust magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_delete_trust ... ok +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_delete_trust_not_found magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_delete_trust_not_found ... ok +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack_with_error +magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack_with_error ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_get_validate_region_name magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_get_validate_region_name ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_create +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_create ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_delete +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_delete ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_get_validate_region_name_is_None magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_get_validate_region_name_is_None ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_update +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_update ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_get_validate_region_name_not_found magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_get_validate_region_name_not_found ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_ca_certificate +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_ca_certificate ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_create +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_create ... ok magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_trustee_domain_id magnum.tests.unit.common.test_keystone.KeystoneClientTest.test_trustee_domain_id ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_delete +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_delete ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_update +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_update ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_empty +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_empty ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_ping_conductor +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_ping_conductor ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_exception +magnum.tests.unit.common.test_neutron.NeutronTest.test_delete_floatingip_exception ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id ... ok +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_sign_certificate +magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_sign_certificate ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_conflict +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_conflict ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_no_container_host +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_no_container_host ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_notfound +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_external_network_id_notfound ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_one_container_host +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_one_container_host ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_scale_up +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_scale_up ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name_notfound +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_network_name_notfound ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_three_container_hosts +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_three_container_hosts ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_two_container_hosts +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_two_container_hosts ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_conflict +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_conflict ... ok +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_with_none_hosts +magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_with_none_hosts ... ok +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_notfound +magnum.tests.unit.common.test_neutron.NeutronTest.test_get_fixed_subnet_id_notfound ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_context +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_context ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domain_project_id +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domain_project_id ... ok +magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_admin_context_succeeds +magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_admin_context_succeeds ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domainid +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domainid ... ok +magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_user_context_fails +magnum.tests.unit.common.test_policy.TestPolicy.test_check_is_admin_with_user_context_fails ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domainid_userid +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domainid_userid ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_projectid +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_projectid ... ok +magnum.tests.unit.common.test_profiler.TestProfiler.test_all_public_methods_are_traced +magnum.tests.unit.common.test_profiler.TestProfiler.test_all_public_methods_are_traced ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_userid +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_userid ... ok +magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler +magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_userid_projectid +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_userid_projectid ... ok +magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler_without_osprofiler +magnum.tests.unit.common.test_profiler.TestProfiler.test_setup_profiler_without_osprofiler ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_complete_status +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_complete_status ... ok magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_deserialize_context magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_deserialize_context ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_in_progress +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_in_progress ... ok magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_serialize_context magnum.tests.unit.common.test_rpc.TestProfilerRequestContextSerializer.test_serialize_context ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_invalid_status +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_invalid_status ... ok magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_name +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_name ... ok magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_template +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_template ... ok magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_null_base magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_null_base ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid ... ok magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid_from_name +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid_from_name ... ok magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ... ok +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid_from_uuid +magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid_from_uuid ... ok magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_null_base magnum.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_null_base ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_append_config +magnum.tests.unit.conf.test_conf.ConfTestCase.test_append_config ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_add_extra_exmods magnum.tests.unit.common.test_rpc.TestRpc.test_add_extra_exmods ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_no_func +magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_no_func ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_valid_func +magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_valid_func ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_notifier_null magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_notifier_null ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_invalid_mods +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_invalid_mods ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_transport_null magnum.tests.unit.common.test_rpc.TestRpc.test_cleanup_transport_null ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_valid_mods +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_valid_mods ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_clear_extra_exmods magnum.tests.unit.common.test_rpc.TestRpc.test_clear_extra_exmods ... ok +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_opts +magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_opts ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_get_client magnum.tests.unit.common.test_rpc.TestRpc.test_get_client ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_get_client_profiler_enabled magnum.tests.unit.common.test_rpc.TestRpc.test_get_client_profiler_enabled ... ok +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_get_server magnum.tests.unit.common.test_rpc.TestRpc.test_get_server ... ok +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_get_server_profiler_enabled magnum.tests.unit.common.test_rpc.TestRpc.test_get_server_profiler_enabled ... ok -magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_generate_csr_and_key -magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_generate_csr_and_key ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url ... ok +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url_null magnum.tests.unit.common.test_rpc.TestRpc.test_get_transport_url_null ... ok +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check +magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ... ok magnum.tests.unit.common.test_rpc.TestRpc.test_serialize_entity magnum.tests.unit.common.test_rpc.TestRpc.test_serialize_entity ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation ... ok +magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_none +magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_none ... ok +magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_not_none +magnum.tests.unit.common.test_service.TestMagnumService.test_prepare_service_with_argv_not_none ... ok magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_12 magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_12 ... ok magnum.tests.unit.common.test_short_id.ShortIdTest.test_byte_string_16 @@ -13910,68 +14204,447 @@ magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_endianness ... ok magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_f magnum.tests.unit.common.test_short_id.ShortIdTest.test_get_id_uuid_f ... ok -magnum.tests.unit.common.test_utils.GeneratePasswordTestCase.test_generate_password -magnum.tests.unit.common.test_utils.GeneratePasswordTestCase.test_generate_password ... ok -magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_k8s_quantity -magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_k8s_quantity ... ok -magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_openstasck_ca -magnum.tests.unit.common.test_utils.UtilsTestCase.test_get_openstasck_ca ... ok -magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_create_trustee_and_trust -magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_create_trustee_and_trust ... ok -magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_create_trustee_and_trust_with_error -magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_create_trustee_and_trust_with_error ... ok -magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust -magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust ... ok -magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust_without_trust_id -magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust_without_trust_id ... ok -magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust_without_trustee_user_id -magnum.tests.unit.conductor.handlers.common.test_trust_manager.TrustManagerTestCase.test_delete_trustee_and_trust_without_trustee_user_id ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation_already_exists +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation_already_exists ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_id_that_does_not_exist +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_id_that_does_not_exist ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_check_exit_code_boolean +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_check_exit_code_boolean ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_uudid_that_does_not_exist +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_uudid_that_does_not_exist ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_uuid +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_uuid ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_id +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_id ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_name +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_name ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_name_multiple_federation +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_name_multiple_federation ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_uuid +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_uuid ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_no_retry_on_success +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_no_retry_on_success ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_by_admin_all_tenants +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_by_admin_all_tenants ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_sorted +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_sorted ... ok +/build/reproducible-path/magnum-19.0.0/magnum/db/sqlalchemy/api.py:116: SAWarning: TypeDecorator JSONEncodedList() will not produce a cache key because the ``cache_ok`` attribute is not set to True. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Set this attribute to True if this type object's state is safe to use in a cache key, or False to disable this warning. (Background on this warning at: https://sqlalche.me/e/20/cprf) + return query.all() +/build/reproducible-path/magnum-19.0.0/magnum/db/sqlalchemy/api.py:116: SAWarning: TypeDecorator JSONEncodedDict() will not produce a cache key because the ``cache_ok`` attribute is not set to True. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Set this attribute to True if this type object's state is safe to use in a cache key, or False to disable this warning. (Background on this warning at: https://sqlalche.me/e/20/cprf) + return query.all() +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_with_filters +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_with_filters ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_that_does_not_exist +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_that_does_not_exist ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_members +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_members ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_not_found +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_not_found ... ok +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_properties +magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_properties ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_delete_complete +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_delete_complete ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_nodegroup_failed +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_nodegroup_failed ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_create_complete +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_create_complete ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_create_failed +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_create_failed ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_creating +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_creating ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_delete_failed +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_delete_failed ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_delete_failed_def_ng +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_delete_failed_def_ng ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleted +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleted ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleting +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleting ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_failed_default_ng +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_failed_default_ng ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_new_ngs +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_new_ngs ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_ngs_failed_and_updating +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_ngs_failed_and_updating ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_create_failed +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_create_failed ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_created +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_created ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_creating +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_creating ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_delete_failed +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_delete_failed ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleted +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleted ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleting +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleting ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_complete +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_complete ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_failed +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_failed ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_retry_on_failure +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_retry_on_failure ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_safe_rstrip +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_safe_rstrip ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_safe_rstrip_not_raises_exceptions +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_safe_rstrip_not_raises_exceptions ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_unknown_kwargs_raises_error +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_unknown_kwargs_raises_error ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_validate_and_normalize_mac +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_validate_and_normalize_mac ... ok +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_validate_and_normalize_mac_invalid_format +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_validate_and_normalize_mac_invalid_format ... ok +magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_decrypt_key +magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_decrypt_key ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_update_failed +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_update_failed ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_updated +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_updated ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_def_ng +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_def_ng ... ok +magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_generate_csr_and_key +magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_generate_csr_and_key ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_default_ng +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_default_ng ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_complete +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_complete ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_failed +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_failed ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_updating +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_updating ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_creating +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_creating ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_deleting +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_deleting ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_creating +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_creating ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_deleting +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_deleting ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_updating +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_updating ... ok +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_updating +magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_updating ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url_fail +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url_fail ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url_not_found +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url_not_found ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_heat_param +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_heat_param ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_external_network_id +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_external_network_id ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_has_publickey +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_has_publickey ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_insecure +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_insecure ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_octavia_disabled +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_octavia_disabled ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_octavia_enabled +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_octavia_enabled ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_scale_params +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_scale_params ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_fail +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_fail ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_invalid +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_invalid ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_unexpect_size +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_unexpect_size ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs_find_subnet_cidr +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs_find_subnet_cidr ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs_fixed_subnet_cidr +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs_fixed_subnet_cidr ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_api_address +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_api_address ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_if_cluster_template_is_secure +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_if_cluster_template_is_secure ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_none_api_address +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_none_api_address ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_master_address +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_master_address ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_master_address_fip_disabled +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_master_address_fip_disabled ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_node_address +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_node_address ... ok +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_node_address_fip_disabled +magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_node_address_fip_disabled ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_disabled_with_fp +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_disabled_with_fp ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_disabled_without_fp +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_disabled_without_fp ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enable_lbfip_disable +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enable_lbfip_disable ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enable_lbfip_template_disable_cluster_enable +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enable_lbfip_template_disable_cluster_enable ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enabled_with_fp +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enabled_with_fp ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enabled_without_fp +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enabled_without_fp ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_fip_enabled_without_fp +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_fip_enabled_without_fp ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_master_lb_fip_disabled_cluster_fip_enabled +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_master_lb_fip_disabled_cluster_fip_enabled ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_output_with_mapping_type +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_output_with_mapping_type ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_get_driver_not_supported +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_get_driver_not_supported ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_get_vm_fcos_kubernetes_definition +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_get_vm_fcos_kubernetes_definition ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_extentions_as_ca +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_extentions_as_ca ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_load_entry_points +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_load_entry_points ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_output_mapping +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_output_mapping ... ok +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_required_param_not_set +magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_required_param_not_set ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_create +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_create ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_destroy +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_destroy ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_bad_id_and_uuid +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_bad_id_and_uuid ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_id +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_id ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_name +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_name ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_uuid +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_uuid ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_list +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_list ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_refresh +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_refresh ... ok +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_save +magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_save ... ok +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_create +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_create ... ok +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_destroy +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_destroy ... ok +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_id +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_id ... ok +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_name +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_name ... ok +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_uuid +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_uuid ... ok +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_list +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_list ... ok +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_list_with_filters +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_list_with_filters ... ok +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_refresh +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_refresh ... ok +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_save +magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_save ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_base_attributes +magnum.tests.unit.objects.test_objects.TestObject.test_base_attributes ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_changed_1 +magnum.tests.unit.objects.test_objects.TestObject.test_changed_1 ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_changed_2 +magnum.tests.unit.objects.test_objects.TestObject.test_changed_2 ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_changed_3 +magnum.tests.unit.objects.test_objects.TestObject.test_changed_3 ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_changed_4 +magnum.tests.unit.objects.test_objects.TestObject.test_changed_4 ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive +magnum.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_contains +magnum.tests.unit.objects.test_objects.TestObject.test_contains ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_dehydration +magnum.tests.unit.objects.test_objects.TestObject.test_dehydration ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_get +magnum.tests.unit.objects.test_objects.TestObject.test_get ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_issuer_name +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_issuer_name ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_get_changes +magnum.tests.unit.objects.test_objects.TestObject.test_get_changes ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_get_updates +magnum.tests.unit.objects.test_objects.TestObject.test_get_updates ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_hydration +magnum.tests.unit.objects.test_objects.TestObject.test_hydration ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns +magnum.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_hydration_type_error +magnum.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_load +magnum.tests.unit.objects.test_objects.TestObject.test_load ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_load_in_base +magnum.tests.unit.objects.test_objects.TestObject.test_load_in_base ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive +magnum.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set +magnum.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_obj_constructor +magnum.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_obj_fields +magnum.tests.unit.objects.test_objects.TestObject.test_obj_fields ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_object_inheritance +magnum.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_object_property +magnum.tests.unit.objects.test_objects.TestObject.test_object_property ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_object_property_type_error +magnum.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_orphaned_object +magnum.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_static_result +magnum.tests.unit.objects.test_objects.TestObject.test_static_result ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_unknown_objtype +magnum.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_updates +magnum.tests.unit.objects.test_objects.TestObject.test_updates ... ok +magnum.tests.unit.objects.test_objects.TestObject.test_with_alternate_context +magnum.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... ok +magnum.tests.unit.objects.test_objects.TestObjectVersions.test_versions +magnum.tests.unit.objects.test_objects.TestObjectVersions.test_versions ... ok +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_create +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_create ... ok +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_destroy +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_destroy ... ok +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_bad_id_and_uuid +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_bad_id_and_uuid ... ok +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_by_id +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_by_id ... ok +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_by_uuid +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_by_uuid ... ok +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_list +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_list ... ok +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_list_all +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_list_all ... ok +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_refresh +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_refresh ... ok +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_save +magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_save ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_health_status +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_health_status ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_changes +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_changes ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_heat_not_found +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_heat_not_found ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_not_changes +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_not_changes ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_non_trusts_error +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_non_trusts_error ... ok +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_trusts_not_found +magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_trusts_not_found ... ok +magnum.tests.unit.template.test_template.TestTemplate.test_template_yaml +magnum.tests.unit.template.test_template.TestTemplate.test_template_yaml ... ok + +POST: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +GOT:Response: 202 Accepted +Content-Type: application/json +Openstack-Api-Maximum-Version: container-infra 1.11 +Openstack-Api-Minimum-Version: container-infra 1.1 +Openstack-Api-Version: container-infra 1.11 +Vary: OpenStack-API-Version +{"id": 12, "uuid": "6ceb6eab-87e0-4cdb-b26c-8d6afe043bc5", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/6ceb6eab-87e0-4cdb-b26c-8d6afe043bc5", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/6ceb6eab-87e0-4cdb-b26c-8d6afe043bc5", "rel": "bookmark"}], "flavor_id": null, "image_id": "ubuntu", "node_addresses": null, "node_count": 1, "role": "worker", "min_node_count": 1, "max_node_count": null, "is_default": false, "stack_id": null, "status": null, "status_reason": null, "version": null, "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +GET: /v1/stats {} +GOT:{'clusters': 2, 'nodes': 12} +GET: /v1/stats?project_id=34 {} +GOT:{'clusters': 0, 'nodes': 0} +GET: /v1/stats?project_id=234 {} +GOT:{'clusters': 1, 'nodes': 6} +GET: /v1/stats {} +GOT:{'clusters': 0, 'nodes': 0} +GET: /v1/stats?project_id=123&type=invalid {} +GET: /v1/stats {} +GOT:{'clusters': 1, 'nodes': 6} +GET: /v1/stats {} +GOT:{'clusters': 1, 'nodes': 6} +GET: /v1/stats?project_id=123 {} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +{"errors": [{"request_id": "", "code": "server", "status": 500, "title": "Test exception message", "detail": "Test exception message.", "links": []}]} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +{"errors": [{"request_id": "", "code": "server", "status": 500, "title": "Remote error: TestException Test exception message", "detail": "Remote error: TestException Test exception message.\n['", "links": []}]} +GET: / {} +GOT:Response: 400 Bad Request +Content-Type: application/json +{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Test exception message", "detail": "Test exception message.\nTraceback (most recent call last):\n File \"/opt/stack/magnum/magnum/openstack/common/rpc/amqp.py\", line 434, in _process_data\\n **args)\n File \"/opt/stack/magnum/magnum/openstack/common/rpc/dispatcher.py\", line 172, in dispatch\\n result = getattr(proxyobj, method)(context, **kwargs)", "links": []}]} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +{"errors": [{"request_id": "", "code": "server", "status": 500, "title": "Test exception message", "detail": "Test exception message.", "links": []}]} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +{"errors": [{"request_id": "", "code": "server", "status": 500, "title": "Error message without traceback \n but \n multiline", "detail": "Error message without traceback \n but \n multiline", "links": []}]} +POST: /v1/clustertemplates {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'name': 'clustermodel1', 'image_id': 'ubuntu', 'flavor_id': 'm1.small', 'master_flavor_id': 'm1.small', 'keypair_id': 'keypair1', 'external_network_id': 'd1f02cfb-d27f-4068-9332-84d907cb0e2e', 'fixed_network': 'private', 'fixed_subnet': 'private-subnet', 'network_driver': None, 'volume_driver': None, 'dns_nameserver': '8.8.1.1', 'apiserver_port': 8080, 'docker_volume_size': 20, 'docker_storage_driver': 'devicemapper', 'cluster_distro': 'fedora-coreos', 'coe': 'kubernetes', 'labels': {'key1': 'val1', 'key2': 'val2'}, 'http_proxy': 'fake_http_proxy', 'https_proxy': 'fake_https_proxy', 'no_proxy': 'fake_no_proxy', 'registry_enabled': False, 'tls_disabled': False, 'public': False, 'server_type': 'vm', 'insecure_registry': '10.0.0.1:5000', 'master_lb_enabled': True, 'floating_ip_enabled': True, 'hidden': False, 'tags': '', 'driver': ''} +DELETE: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 +GET: /v1/clustertemplates {} +GET: /v1/clustertemplates/detail {} +GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/dns_nameserver', 'op': 'remove'}] +POST: /v1/federations {} +DELETE: /v1/federations/7e67858f-c3c1-429e-bc3e-68344aedee74 +GET: /v1/federations/detail {} +GET: /v1/federations {} +GET: /v1/federations {} +GOT:{'federations': [{'uuid': 'ccc17a9e-1f7a-4082-8418-0fed6c6115b8', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/ccc17a9e-1f7a-4082-8418-0fed6c6115b8', 'rel': 'self'}, {'href': 'http://localhost/federations/ccc17a9e-1f7a-4082-8418-0fed6c6115b8', 'rel': 'bookmark'}]}]} +PATCH: /v1/federations/c518f3b9-efdd-4fc9-b201-b196e1590337 [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] +GET: /v1/mservices {} +POST: /v1/clusters/c9f796b9-4c6f-4b98-a0cb-e5240e9e100c/nodegroups/ {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} +DELETE: /v1/clusters/b4deee6e-9731-442c-bacd-60055ecc3c55/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 +GET: /v1/clusters/df69ef68-8d31-4653-b462-df8970409e1e/nodegroups/ {} +GET: /v1/clusters/89d124d0-54fd-45d8-8576-35f8705d9e83/nodegroups/foo {} +PATCH: /v1/clusters/474895dd-2fec-4405-88a4-20b24ae9daed/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] +GET: /v1/stats {} +GOT:{'clusters': 0, 'nodes': 0} +GET: /v1/stats {} +GET: /v1/stats {} +GOT:{'clusters': 0, 'nodes': 0} +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_subject_name +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_subject_name ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_with_bytes_issuer_name +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_with_bytes_issuer_name ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_bytes_private_key +magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_bytes_private_key ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_unicode_private_key +magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_unicode_private_key ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_empty_chars +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_empty_chars ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_invalid_csr +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_invalid_csr ... ok +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_unicode_csr +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_unicode_csr ... ok +magnum.tests.unit.conductor.handlers.test_ca_conductor.TestSignConductor.test_get_ca_certificate +magnum.tests.unit.conductor.handlers.test_ca_conductor.TestSignConductor.test_get_ca_certificate ... ok +magnum.tests.unit.conductor.handlers.test_ca_conductor.TestSignConductor.test_sign_certificate +magnum.tests.unit.conductor.handlers.test_ca_conductor.TestSignConductor.test_sign_certificate ... ok magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_create_federation magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_create_federation ... ok magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_delete_federation magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_delete_federation ... ok magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_update_federation magnum.tests.unit.conductor.handlers.test_federation_conductor.TestHandler.test_update_federation ... ok -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action ... ok -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_copies_object -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_copies_object ... ok -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_on_raise -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_action_on_raise ... ok -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action ... ok -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action_on_raise -magnum.tests.unit.conductor.handlers.test_indirection_api.TestIndirectionApiConductor.test_object_class_action_on_raise ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_no_timeout_specified -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_no_timeout_specified ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_timeout_is_zero -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_create_stack_timeout_is_zero ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_no_discoveryurl -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_no_discoveryurl ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_with_discovery -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_fcos_with_discovery ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_has_publickey -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_has_publickey ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_only_required -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_only_required ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_with_registry -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_with_registry ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_apiserver_port -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_apiserver_port ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_discovery_url -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_discovery_url ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_dns -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_dns ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_docker_storage_driver -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_docker_storage_driver ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_server_image -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_extract_template_definition_without_server_image ... ok -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_update_stack -magnum.tests.unit.conductor.handlers.test_k8s_cluster_conductor.TestClusterConductorWithK8s.test_update_stack ... ok magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_is_magnum_auto_healer_running magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_is_magnum_auto_healer_running ... ok magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_compute_cpu_util @@ -13994,48 +14667,8 @@ magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_health_unreachable_with_master_lb ... ok magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_pull_data_success magnum.tests.unit.conductor.test_monitors.MonitorsTestCase.test_k8s_monitor_pull_data_success ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_create -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_create ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_delete -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_delete ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_update -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_cluster_update ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_ca_certificate -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_ca_certificate ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_create -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_create ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_delete -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_delete ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_update -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_nodegroup_update ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_ping_conductor -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_ping_conductor ... ok -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_sign_certificate -magnum.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_sign_certificate ... ok magnum.tests.unit.conductor.test_scale_manager.TestK8sScaleManager.test_get_hosts_with_container magnum.tests.unit.conductor.test_scale_manager.TestK8sScaleManager.test_get_hosts_with_container ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_append_config -magnum.tests.unit.conf.test_conf.ConfTestCase.test_append_config ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_no_func -magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_no_func ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_valid_func -magnum.tests.unit.conf.test_conf.ConfTestCase.test_import_mods_valid_func ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_extentions_as_ca -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_extentions_as_ca ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_invalid_mods -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_invalid_mods ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_valid_mods -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_module_name_valid_mods ... ok -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_opts -magnum.tests.unit.conf.test_conf.ConfTestCase.test_list_opts ... ok -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ... ok -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value ... ok -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check -magnum.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ... ok magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster ... ok magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_create_cluster_already_exists @@ -14062,8 +14695,6 @@ magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_by_uuid ... ok magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_issuer_name -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_issuer_name ... ok magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_by_admin_all_tenants magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_by_admin_all_tenants ... ok magnum.tests.unit.db.test_cluster.DbClusterTestCase.test_get_cluster_list_cluster_template_not_exist @@ -14108,8 +14739,6 @@ magnum.tests.unit.db.test_cluster_template.DbClusterTemplateTestCase.test_get_cluster_template_by_name_multiple_cluster_template ... ok magnum.tests.unit.db.test_cluster_template.DbClusterTemplateTestCase.test_get_cluster_template_by_name_not_found magnum.tests.unit.db.test_cluster_template.DbClusterTemplateTestCase.test_get_cluster_template_by_name_not_found ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_subject_name -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_subject_name ... ok magnum.tests.unit.db.test_cluster_template.DbClusterTemplateTestCase.test_get_cluster_template_by_name_public magnum.tests.unit.db.test_cluster_template.DbClusterTemplateTestCase.test_get_cluster_template_by_name_public ... ok magnum.tests.unit.db.test_cluster_template.DbClusterTemplateTestCase.test_get_cluster_template_by_uuid @@ -14140,8 +14769,6 @@ magnum.tests.unit.db.test_magnum_service.DbMagnumServiceTestCase.test_create_magnum_service_failure_for_dup ... ok magnum.tests.unit.db.test_magnum_service.DbMagnumServiceTestCase.test_destroy_magnum_service magnum.tests.unit.db.test_magnum_service.DbMagnumServiceTestCase.test_destroy_magnum_service ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_with_bytes_issuer_name -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_with_bytes_issuer_name ... ok magnum.tests.unit.db.test_magnum_service.DbMagnumServiceTestCase.test_destroy_magnum_service_failure magnum.tests.unit.db.test_magnum_service.DbMagnumServiceTestCase.test_destroy_magnum_service_failure ... ok magnum.tests.unit.db.test_magnum_service.DbMagnumServiceTestCase.test_get_magnum_service_by_host_and_binary @@ -14232,561 +14859,6 @@ magnum.tests.unit.db.test_x509keypair.DbX509KeyPairTestCase.test_get_x509keypair_list_by_admin_all_tenants ... ok magnum.tests.unit.db.test_x509keypair.DbX509KeyPairTestCase.test_get_x509keypair_that_does_not_exist magnum.tests.unit.db.test_x509keypair.DbX509KeyPairTestCase.test_get_x509keypair_that_does_not_exist ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_delete_complete -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_delete_complete ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_nodegroup_failed -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_nodegroup_failed ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_create_complete -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_create_complete ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_create_failed -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_create_failed ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_creating -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_creating ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_delete_failed -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_delete_failed ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_delete_failed_def_ng -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_delete_failed_def_ng ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleted -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleted ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleting -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_deleting ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_failed_default_ng -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_failed_default_ng ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_new_ngs -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_new_ngs ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_ngs_failed_and_updating -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_multiple_ngs_failed_and_updating ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_create_failed -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_create_failed ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_created -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_created ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_creating -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_creating ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_delete_failed -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_delete_failed ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleted -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleted ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleting -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_deleting ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_complete -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_complete ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_failed -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_rollback_failed ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_update_failed -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_update_failed ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_updated -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_new_ng_updated ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_def_ng -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_def_ng ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_default_ng -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_rollback_failed_default_ng ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_complete -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_complete ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_failed -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_update_failed ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_updating -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_poll_and_check_updating ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_creating -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_creating ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_deleting -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_deleting ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_creating -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_creating ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_deleting -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_deleting ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_updating -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_new_ng_updating ... ok -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_updating -magnum.tests.unit.drivers.test_heat_driver.TestHeatPoller.test_stack_not_found_updating ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_disabled_with_fp -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_disabled_with_fp ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_disabled_without_fp -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_disabled_without_fp ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enable_lbfip_disable -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enable_lbfip_disable ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enable_lbfip_template_disable_cluster_enable -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enable_lbfip_template_disable_cluster_enable ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enabled_with_fp -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enabled_with_fp ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enabled_without_fp -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_enabled_without_fp ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_fip_enabled_without_fp -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_env_lb_fip_enabled_without_fp ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_master_lb_fip_disabled_cluster_fip_enabled -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_fip_master_lb_fip_disabled_cluster_fip_enabled ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_output_with_mapping_type -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_add_output_with_mapping_type ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_get_driver_not_supported -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_get_driver_not_supported ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_get_vm_fcos_kubernetes_definition -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_get_vm_fcos_kubernetes_definition ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_load_entry_points -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_load_entry_points ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_output_mapping -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_output_mapping ... ok -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_required_param_not_set -magnum.tests.unit.drivers.test_template_definition.TemplateDefinitionTestCase.test_required_param_not_set ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_bad_values -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_bad_values ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_good_values -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_good_values ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_from_primitive -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_from_primitive ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify_invalid -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify_invalid ... ok -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_to_primitive -magnum.tests.unit.objects.test_fields.TestClusterStatus.test_to_primitive ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_bad_values -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_bad_values ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_good_values -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_good_values ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_from_primitive -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_from_primitive ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify_invalid -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify_invalid ... ok -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_to_primitive -magnum.tests.unit.objects.test_fields.TestContainerStatus.test_to_primitive ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_bad_values -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_bad_values ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_good_values -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_good_values ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_from_primitive -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_from_primitive ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify_invalid -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify_invalid ... ok -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_to_primitive -magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_to_primitive ... ok -magnum.tests.unit.objects.test_objects.TestObjectVersions.test_versions -magnum.tests.unit.objects.test_objects.TestObjectVersions.test_versions ... ok -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_create -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_create ... ok -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_destroy -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_destroy ... ok -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_bad_id_and_uuid -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_bad_id_and_uuid ... ok -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_by_id -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_by_id ... ok -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_by_uuid -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_get_by_uuid ... ok -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_list -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_list ... ok -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_list_all -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_list_all ... ok -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_refresh -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_refresh ... ok -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_save -magnum.tests.unit.objects.test_x509keypair.TestX509KeyPairObject.test_save ... ok -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_firsttime -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_firsttime ... ok -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_on_restart -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_on_restart ... ok -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_regular -magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_regular ... ok -magnum.tests.unit.template.test_template.TestTemplate.test_template_yaml -magnum.tests.unit.template.test_template.TestTemplate.test_template_yaml ... ok - -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"id": 12, "uuid": "483203a3-dbee-4a9c-9d65-9820512f4df8", "name": "nodegroup1", "cluster_id": "5d12f6fd-a196-4bf0-ae4c-1f639a523a52", "project_id": "fake_project", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "self"}, {"href": "http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 2, "role": "worker", "min_node_count": 2, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:50.664535+00:00", "updated_at": null} -GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 {} -GOT:{'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'cluster_id': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'project_id': 'fake_project', 'docker_volume_size': None, 'labels': {}, 'links': [{'href': 'http://localhost/v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'self'}, {'href': 'http://localhost/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8', 'rel': 'bookmark'}], 'flavor_id': None, 'image_id': None, 'node_addresses': ['172.17.2.4'], 'node_count': 2, 'role': 'worker', 'min_node_count': 2, 'max_node_count': 4, 'is_default': False, 'stack_id': '047c6319-7abd-fake-a033-8c6af0173cd0', 'status': 'CREATE_COMPLETE', 'status_reason': 'Completed successfully', 'version': '1', 'merge_labels': False, 'labels_overridden': {}, 'labels_added': {}, 'labels_skipped': {}, 'created_at': '2026-01-22T07:06:50.664535+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} -PATCH: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52/nodegroups/nodegroup1 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -{"errors": [{"request_id": "", "code": "", "status": 406, "title": "", "detail": "", "links": []}]} -PATCH: /v1/clusters/9ca0faa3-0823-4ede-81c1-3d475d193e58/nodegroups/1a8d288c-9f95-468a-a324-1e3e6e4e4f65 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Api-Maximum-Version: container-infra 1.11 -Openstack-Api-Minimum-Version: container-infra 1.1 -Openstack-Api-Version: container-infra 1.11 -Vary: OpenStack-API-Version -{"id": 50, "uuid": "1a8d288c-9f95-468a-a324-1e3e6e4e4f65", "name": "nodegroup1", "cluster_id": "9ca0faa3-0823-4ede-81c1-3d475d193e58", "project_id": "fake", "docker_volume_size": null, "labels": {}, "links": [{"href": "http://localhost/v1/clusters/9ca0faa3-0823-4ede-81c1-3d475d193e58/nodegroups/1a8d288c-9f95-468a-a324-1e3e6e4e4f65", "rel": "self"}, {"href": "http://localhost/clusters/9ca0faa3-0823-4ede-81c1-3d475d193e58/nodegroups/1a8d288c-9f95-468a-a324-1e3e6e4e4f65", "rel": "bookmark"}], "flavor_id": null, "image_id": null, "node_addresses": ["172.17.2.4"], "node_count": 3, "role": "worker", "min_node_count": 1, "max_node_count": 4, "is_default": false, "stack_id": "047c6319-7abd-fake-a033-8c6af0173cd0", "status": "CREATE_COMPLETE", "status_reason": "Completed successfully", "version": "1", "merge_labels": false, "labels_overridden": {}, "labels_added": {}, "labels_skipped": {}, "created_at": "2026-01-22T07:06:50.751332+00:00", "updated_at": null} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -{"errors": [{"request_id": "", "code": "server", "status": 500, "title": "Test exception message", "detail": "Test exception message.", "links": []}]} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -{"errors": [{"request_id": "", "code": "server", "status": 500, "title": "Remote error: TestException Test exception message", "detail": "Remote error: TestException Test exception message.\n['", "links": []}]} -GET: / {} -GOT:Response: 400 Bad Request -Content-Type: application/json -{"errors": [{"request_id": "", "code": "client", "status": 400, "title": "Test exception message", "detail": "Test exception message.\nTraceback (most recent call last):\n File \"/opt/stack/magnum/magnum/openstack/common/rpc/amqp.py\", line 434, in _process_data\\n **args)\n File \"/opt/stack/magnum/magnum/openstack/common/rpc/dispatcher.py\", line 172, in dispatch\\n result = getattr(proxyobj, method)(context, **kwargs)", "links": []}]} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -{"errors": [{"request_id": "", "code": "server", "status": 500, "title": "Test exception message", "detail": "Test exception message.", "links": []}]} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -{"errors": [{"request_id": "", "code": "server", "status": 500, "title": "Error message without traceback \n but \n multiline", "detail": "Error message without traceback \n but \n multiline", "links": []}]} -POST: /v1/federations {} -DELETE: /v1/federations/f6c84ea4-a2db-4a42-a7bb-63fcf505569c -GET: /v1/federations/detail {} -GET: /v1/federations {} -GET: /v1/federations {} -GOT:{'federations': [{'uuid': '02764547-80be-4fd4-9a51-59b352bf4c70', 'name': 'fake-name', 'hostcluster_id': 'fake_master', 'member_ids': ['fake_member1', 'fake_member2'], 'status': 'CREATE_IN_PROGRESS', 'properties': {'dns-zone': 'example.com.'}, 'links': [{'href': 'http://localhost/v1/federations/02764547-80be-4fd4-9a51-59b352bf4c70', 'rel': 'self'}, {'href': 'http://localhost/federations/02764547-80be-4fd4-9a51-59b352bf4c70', 'rel': 'bookmark'}]}]} -PATCH: /v1/federations/c13e8d94-4b8f-4852-9217-708e89ea368f [{'path': '/member_ids', 'value': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'op': 'add'}] -GET: /v1/mservices {} -POST: /v1/clusters/11d8ff0a-949a-4827-b32d-e57aec03cc91/nodegroups/ {'id': 12, 'uuid': '483203a3-dbee-4a9c-9d65-9820512f4df8', 'name': 'nodegroup1', 'docker_volume_size': None, 'labels': None, 'flavor_id': None, 'image_id': None, 'node_count': 3, 'role': 'worker', 'max_node_count': None, 'min_node_count': 1, 'merge_labels': False} -DELETE: /v1/clusters/9fb970a0-6205-4fd0-ba9e-fd2a8f499d69/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 -GET: /v1/clusters/3b42acd2-67fa-43c1-abcf-d355830ea25d/nodegroups/ {} -GET: /v1/clusters/d7f6faa7-c59c-4fb3-9811-5ffb863d5ee7/nodegroups/foo {} -PATCH: /v1/clusters/70877139-6bab-42b2-aa80-390658173720/nodegroups/483203a3-dbee-4a9c-9d65-9820512f4df8 [{'path': '/max_node_count', 'value': 4, 'op': 'replace'}] -GET: /v1/stats {} -GOT:{'clusters': 0, 'nodes': 0} -GET: /v1/stats {} -GET: /v1/stats {} -GOT:{'clusters': 0, 'nodes': 0} -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_equal_in -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_equal_in ... ok -stdin:1:1: M302 assertEqual(A is not None) sentences not allowed. -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_is_not_none -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_is_not_none ... ok -stdin:1:1: M316 assertTrue(isinstance(a, b)) sentences not allowed -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_true_isinstance -magnum.tests.unit.test_hacking.HackingTestCase.test_assert_true_isinstance ... ok -magnum.tests.unit.test_hacking.HackingTestCase.test_check_explicit_underscore_import -magnum.tests.unit.test_hacking.HackingTestCase.test_check_explicit_underscore_import ... ok -magnum.tests.unit.test_hacking.HackingTestCase.test_dict_constructor_with_list_copy -magnum.tests.unit.test_hacking.HackingTestCase.test_dict_constructor_with_list_copy ... ok -stdin:1:1: M352 LOG.warn is deprecated, please use LOG.warning! -magnum.tests.unit.test_hacking.HackingTestCase.test_no_log_warn -magnum.tests.unit.test_hacking.HackingTestCase.test_no_log_warn ... ok -stdin:1:1: M322 Method's default argument shouldn't be mutable! -magnum.tests.unit.test_hacking.HackingTestCase.test_no_mutable_default_args -magnum.tests.unit.test_hacking.HackingTestCase.test_no_mutable_default_args ... ok -stdin:1:1: M339 Do not use xrange(). -magnum.tests.unit.test_hacking.HackingTestCase.test_no_xrange -magnum.tests.unit.test_hacking.HackingTestCase.test_no_xrange ... ok -stdin:1:1: M310 timeutils.utcnow() must be used instead of datetime.now() -stdin:1:1: M310 timeutils.utcnow() must be used instead of datetime.utcnow() -magnum.tests.unit.test_hacking.HackingTestCase.test_use_timeunitls_utcow -magnum.tests.unit.test_hacking.HackingTestCase.test_use_timeunitls_utcow ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_bytes_private_key -magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_bytes_private_key ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_unicode_private_key -magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_unicode_private_key ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_empty_chars -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_empty_chars ... ok -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_invalid_csr -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_invalid_csr ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_unicode_csr -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_unicode_csr ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_not_critical -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_not_critical ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_with_non_ca -magnum.tests.unit.common.x509.test_validator.TestValidators.test_disallow_ca_in_basic_constraints_with_non_ca ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed_but_not_critical -magnum.tests.unit.common.x509.test_validator.TestValidators.test_filter_allowed_extensions_disallowed_but_not_critical ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed_but_not_critical -magnum.tests.unit.common.x509.test_validator.TestValidators.test_merge_key_usage_disallowed_but_not_critical ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_cert_sign -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_cert_sign ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_crl_sign -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_crl_sign ... ok -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_without_ca_usage -magnum.tests.unit.common.x509.test_validator.TestValidators.test_remove_ca_key_usage_without_ca_usage ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_in_cache -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_in_cache ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_notin_cache -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_notin_cache ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_set_file_permissions -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_set_file_permissions ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_temp_no_dir -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_create_client_files_temp_no_dir ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_if_raise_error -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_if_raise_error ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_without_cert_ref -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_certificates_without_cert_ref ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files_none -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_delete_client_files_none ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_ca_cert -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_ca_cert ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_with_error -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_with_error ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_without_name -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_certificates_without_name ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_client_cert -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_generate_client_cert ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate_ca_cert_type -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_ca_certificate_ca_cert_type ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_magnum_cert -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_get_cluster_magnum_cert ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate ... ok -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate_without_cluster_name -magnum.tests.unit.conductor.handlers.common.test_cert_manager.CertManagerTestCase.test_sign_node_certificate_without_cluster_name ... ok -magnum.tests.unit.conductor.handlers.test_ca_conductor.TestSignConductor.test_get_ca_certificate -magnum.tests.unit.conductor.handlers.test_ca_conductor.TestSignConductor.test_get_ca_certificate ... ok -magnum.tests.unit.conductor.handlers.test_ca_conductor.TestSignConductor.test_sign_certificate -magnum.tests.unit.conductor.handlers.test_ca_conductor.TestSignConductor.test_sign_certificate ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_conflict -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_conflict ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_with_lb -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_delete_with_lb ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_failure -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_failure ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_success -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_cluster_resize_success ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_handles_bad_request -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_handles_bad_request ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_cert_failed -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_cert_failed ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_environment -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_environment ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_invalid_unicode_name -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_invalid_unicode_name ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_trust_failed -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_create_with_trust_failed ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_adopt_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_adopt_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_check_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_check_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_restore_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_restore_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_resume_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_resume_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_rollback_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_rollback_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_snapshot_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_snapshot_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_update_complete -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_cluster_status_update_complete ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_failure -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_failure ... ok -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_success -magnum.tests.unit.conductor.handlers.test_cluster_conductor.TestHandler.test_update_node_count_success ... ok -magnum.tests.unit.conductor.handlers.test_conductor_listener.TestHandler.test_ping_conductor -magnum.tests.unit.conductor.handlers.test_conductor_listener.TestHandler.test_ping_conductor ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed_bad_request -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_create_failed_bad_request ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_failed -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_failed ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_and_ng_not_found -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_and_ng_not_found ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_not_found -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_not_found ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_operation_ongoing -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_delete_stack_operation_ongoing ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_udpate -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_udpate ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed ... ok -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed_bad_request -magnum.tests.unit.conductor.handlers.test_nodegroup_conductor.TestHandler.test_nodegroup_update_failed_bad_request ... ok -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack ... ok -DEBUG [taskflow.engines.action_engine.completer] Applying resolver 'RevertAll(strategy=REVERT_ALL)' to resolve failure 'Failure: ValueError: ' of atom '"magnum.conductor.tasks.heat_tasks.CreateStack==1.0"' -DEBUG [taskflow.engines.action_engine.completer] Modified/tweaked 1 nodes while applying resolver 'RevertAll(strategy=REVERT_ALL)' -DEBUG [taskflow.engines.action_engine.builder] Discarding failure 'Failure: ValueError: ' (in response to outcome 'executed') under completion units request during completion of atom '"magnum.conductor.tasks.heat_tasks.CreateStack==1.0"' (intention is to REVERT) -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack_with_error -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_create_stack_with_error ... ok -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack ... ok -DEBUG [taskflow.engines.action_engine.completer] Applying resolver 'RevertAll(strategy=REVERT_ALL)' to resolve failure 'Failure: ValueError: ' of atom '"magnum.conductor.tasks.heat_tasks.DeleteStack==1.0"' -DEBUG [taskflow.engines.action_engine.completer] Modified/tweaked 1 nodes while applying resolver 'RevertAll(strategy=REVERT_ALL)' -DEBUG [taskflow.engines.action_engine.builder] Discarding failure 'Failure: ValueError: ' (in response to outcome 'executed') under completion units request during completion of atom '"magnum.conductor.tasks.heat_tasks.DeleteStack==1.0"' (intention is to REVERT) -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack_with_error -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_delete_stack_with_error ... ok -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack ... ok -DEBUG [taskflow.engines.action_engine.completer] Applying resolver 'RevertAll(strategy=REVERT_ALL)' to resolve failure 'Failure: ValueError: ' of atom '"magnum.conductor.tasks.heat_tasks.UpdateStack==1.0"' -DEBUG [taskflow.engines.action_engine.completer] Modified/tweaked 1 nodes while applying resolver 'RevertAll(strategy=REVERT_ALL)' -DEBUG [taskflow.engines.action_engine.builder] Discarding failure 'Failure: ValueError: ' (in response to outcome 'executed') under completion units request during completion of atom '"magnum.conductor.tasks.heat_tasks.UpdateStack==1.0"' (intention is to REVERT) -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack_with_error -magnum.tests.unit.conductor.tasks.test_heat_tasks.HeatTasksTests.test_update_stack_with_error ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_no_container_host -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_no_container_host ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_one_container_host -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_one_container_host ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_scale_up -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_scale_up ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_three_container_hosts -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_three_container_hosts ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_two_container_hosts -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_two_container_hosts ... ok -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_with_none_hosts -magnum.tests.unit.conductor.test_scale_manager.TestScaleManager.test_get_removal_nodes_with_none_hosts ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_context -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_context ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domain_project_id -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domain_project_id ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domainid -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domainid ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domainid_userid -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_domainid_userid ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_projectid -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_projectid ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_userid -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_userid ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_userid_projectid -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_get_request_audit_info_with_none_userid_projectid ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_complete_status -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_complete_status ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_in_progress -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_delete_in_progress ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_invalid_status -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_object_has_stack_invalid_status ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_name -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_name ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_template -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_template ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid_from_name -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid_from_name ... ok -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid_from_uuid -magnum.tests.unit.conductor.test_utils.TestConductorUtils.test_retrieve_cluster_uuid_from_uuid ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation_already_exists -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_create_federation_already_exists ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_id_that_does_not_exist -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_id_that_does_not_exist ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_uudid_that_does_not_exist -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_uudid_that_does_not_exist ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_uuid -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_destroy_federation_by_uuid ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_id -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_id ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_name -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_name ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_name_multiple_federation -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_name_multiple_federation ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_uuid -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_by_uuid ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_by_admin_all_tenants -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_by_admin_all_tenants ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_sorted -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_sorted ... ok -/build/reproducible-path/magnum-19.0.0/magnum/db/sqlalchemy/api.py:116: SAWarning: TypeDecorator JSONEncodedList() will not produce a cache key because the ``cache_ok`` attribute is not set to True. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Set this attribute to True if this type object's state is safe to use in a cache key, or False to disable this warning. (Background on this warning at: https://sqlalche.me/e/20/cprf) - return query.all() -/build/reproducible-path/magnum-19.0.0/magnum/db/sqlalchemy/api.py:116: SAWarning: TypeDecorator JSONEncodedDict() will not produce a cache key because the ``cache_ok`` attribute is not set to True. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Set this attribute to True if this type object's state is safe to use in a cache key, or False to disable this warning. (Background on this warning at: https://sqlalche.me/e/20/cprf) - return query.all() -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_with_filters -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_list_with_filters ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_that_does_not_exist -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_get_federation_that_does_not_exist ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_members -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_members ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_not_found -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_not_found ... ok -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_properties -magnum.tests.unit.db.test_federation.DbFederationTestCase.test_update_federation_properties ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url_fail -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url_fail ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url_not_found -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_discovery_url_not_found ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_heat_param -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_heat_param ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_external_network_id -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_external_network_id ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_insecure -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_insecure ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_octavia_disabled -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_octavia_disabled ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_octavia_enabled -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_params_octavia_enabled ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_scale_params -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_get_scale_params ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_fail -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_fail ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_invalid -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_invalid ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_unexpect_size -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_k8s_validate_discovery_url_unexpect_size ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs_find_subnet_cidr -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs_find_subnet_cidr ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs_fixed_subnet_cidr -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_set_master_lb_allowed_cidrs_fixed_subnet_cidr ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_api_address -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_api_address ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_if_cluster_template_is_secure -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_if_cluster_template_is_secure ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_none_api_address -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_k8s_outputs_none_api_address ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_master_address -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_master_address ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_master_address_fip_disabled -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_master_address_fip_disabled ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_node_address -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_node_address ... ok -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_node_address_fip_disabled -magnum.tests.unit.drivers.test_template_definition.FCOSK8sTemplateDefinitionTestCase.test_update_outputs_node_address_fip_disabled ... ok magnum.tests.unit.objects.test_cluster.TestClusterObject.test_create magnum.tests.unit.objects.test_cluster.TestClusterObject.test_create ... ok magnum.tests.unit.objects.test_cluster.TestClusterObject.test_destroy @@ -14809,24 +14881,6 @@ magnum.tests.unit.objects.test_cluster.TestClusterObject.test_refresh ... ok magnum.tests.unit.objects.test_cluster.TestClusterObject.test_save magnum.tests.unit.objects.test_cluster.TestClusterObject.test_save ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_create -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_create ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_destroy -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_destroy ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_bad_id_and_uuid -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_bad_id_and_uuid ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_id -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_id ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_name -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_name ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_uuid -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_get_by_uuid ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_list -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_list ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_refresh -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_refresh ... ok -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_save -magnum.tests.unit.objects.test_cluster_template.TestClusterTemplateObject.test_save ... ok magnum.tests.unit.objects.test_federation.TestFederationObject.test_create magnum.tests.unit.objects.test_federation.TestFederationObject.test_create ... ok magnum.tests.unit.objects.test_federation.TestFederationObject.test_destroy @@ -14861,6 +14915,18 @@ magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_stringify_invalid ... ok magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_to_primitive magnum.tests.unit.objects.test_fields.TestClusterHealthStatus.test_to_primitive ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_bad_values +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_bad_values ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_good_values +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_coerce_good_values ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_from_primitive +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_from_primitive ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify_invalid +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_stringify_invalid ... ok +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_to_primitive +magnum.tests.unit.objects.test_fields.TestClusterStatus.test_to_primitive ... ok magnum.tests.unit.objects.test_fields.TestClusterType.test_coerce_bad_values magnum.tests.unit.objects.test_fields.TestClusterType.test_coerce_bad_values ... ok magnum.tests.unit.objects.test_fields.TestClusterType.test_coerce_good_values @@ -14873,6 +14939,30 @@ magnum.tests.unit.objects.test_fields.TestClusterType.test_stringify_invalid ... ok magnum.tests.unit.objects.test_fields.TestClusterType.test_to_primitive magnum.tests.unit.objects.test_fields.TestClusterType.test_to_primitive ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_bad_values +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_bad_values ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_good_values +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_coerce_good_values ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_from_primitive +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_from_primitive ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify_invalid +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_stringify_invalid ... ok +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_to_primitive +magnum.tests.unit.objects.test_fields.TestContainerStatus.test_to_primitive ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_bad_values +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_bad_values ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_good_values +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_coerce_good_values ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_from_primitive +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_from_primitive ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify_invalid +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_stringify_invalid ... ok +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_to_primitive +magnum.tests.unit.objects.test_fields.TestMagnumServiceBinary.test_to_primitive ... ok magnum.tests.unit.objects.test_fields.TestServerType.test_coerce_bad_values magnum.tests.unit.objects.test_fields.TestServerType.test_coerce_bad_values ... ok magnum.tests.unit.objects.test_fields.TestServerType.test_coerce_good_values @@ -14897,80 +14987,6 @@ magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_report_state_up ... ok magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_save magnum.tests.unit.objects.test_magnum_service.TestMagnumServiceObject.test_save ... ok -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_create -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_create ... ok -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_destroy -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_destroy ... ok -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_id -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_id ... ok -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_name -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_name ... ok -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_uuid -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_get_by_uuid ... ok -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_list -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_list ... ok -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_list_with_filters -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_list_with_filters ... ok -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_refresh -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_refresh ... ok -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_save -magnum.tests.unit.objects.test_nodegroup.TestNodeGroupObject.test_save ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_base_attributes -magnum.tests.unit.objects.test_objects.TestObject.test_base_attributes ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_changed_1 -magnum.tests.unit.objects.test_objects.TestObject.test_changed_1 ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_changed_2 -magnum.tests.unit.objects.test_objects.TestObject.test_changed_2 ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_changed_3 -magnum.tests.unit.objects.test_objects.TestObject.test_changed_3 ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_changed_4 -magnum.tests.unit.objects.test_objects.TestObject.test_changed_4 ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive -magnum.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_contains -magnum.tests.unit.objects.test_objects.TestObject.test_contains ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_dehydration -magnum.tests.unit.objects.test_objects.TestObject.test_dehydration ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_get -magnum.tests.unit.objects.test_objects.TestObject.test_get ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_get_changes -magnum.tests.unit.objects.test_objects.TestObject.test_get_changes ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_get_updates -magnum.tests.unit.objects.test_objects.TestObject.test_get_updates ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_hydration -magnum.tests.unit.objects.test_objects.TestObject.test_hydration ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns -magnum.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_hydration_type_error -magnum.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_load -magnum.tests.unit.objects.test_objects.TestObject.test_load ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_load_in_base -magnum.tests.unit.objects.test_objects.TestObject.test_load_in_base ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive -magnum.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set -magnum.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_obj_constructor -magnum.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_obj_fields -magnum.tests.unit.objects.test_objects.TestObject.test_obj_fields ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_object_inheritance -magnum.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_object_property -magnum.tests.unit.objects.test_objects.TestObject.test_object_property ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_object_property_type_error -magnum.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_orphaned_object -magnum.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_static_result -magnum.tests.unit.objects.test_objects.TestObject.test_static_result ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_unknown_objtype -magnum.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_updates -magnum.tests.unit.objects.test_objects.TestObject.test_updates ... ok -magnum.tests.unit.objects.test_objects.TestObject.test_with_alternate_context -magnum.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... ok magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport ... ok magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero @@ -14987,22 +15003,21 @@ magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization ... ok magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables magnum.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_health_status -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_health_status ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_changes -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_changes ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_heat_not_found -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_heat_not_found ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_not_changes -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_sync_cluster_status_not_changes ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_non_trusts_error -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_non_trusts_error ... ok -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_trusts_not_found -magnum.tests.unit.service.test_periodic.PeriodicTestCase.test_update_status_trusts_not_found ... ok +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_firsttime +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_firsttime ... ok +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_on_restart +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_on_restart ... ok +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_regular +magnum.tests.unit.servicegroup.test_magnum_service.MagnumServicePeriodicTestCase.test_update_magnum_service_regular ... ok -GET: /v1/clustertemplates/detail {} -GET: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -PATCH: /v1/clustertemplates/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/dns_nameserver', 'op': 'remove'}] +POST: /v1/certificates {'cluster_uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'csr': 'fake-csr'} +GET: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +PATCH: /v1/certificates/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +POST: /v1/clusters {'uuid': '5d12f6fd-a196-4bf0-ae4c-1f639a523a52', 'name': 'cluster1', 'discovery_url': None, 'cluster_template_id': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'status': 'CREATE_IN_PROGRESS', 'status_reason': 'Completed successfully', 'create_timeout': 15, 'docker_volume_size': None, 'labels': None, 'master_flavor_id': None, 'flavor_id': None, 'fixed_network': None, 'fixed_subnet': None, 'floating_ip_enabled': True, 'master_lb_enabled': True, 'node_count': 3, 'master_count': 3, 'merge_labels': False} +DELETE: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 +GET: /v1/clusters {} +GET: /v1/clusters/5d12f6fd-a196-4bf0-ae4c-1f639a523a52 {} +PATCH: /v1/clusters/cluster_example_A [{'path': '/node_count', 'value': 4, 'op': 'replace'}] POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} POST: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 10} GOT:Response: 201 Created @@ -15011,7 +15026,7 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:49.570660+00:00", "updated_at": null} +{"id": 42, "hard_limit": 10, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:15:22.624624+00:00", "updated_at": null} DELETE: /v1/quotas/fake_project/Cluster GET: /v1/quotas {} GET: /v1/quotas/fake_project/Cluster {} @@ -15022,26 +15037,59 @@ Openstack-Api-Minimum-Version: container-infra 1.1 Openstack-Api-Version: container-infra 1.1 Vary: OpenStack-API-Version -{"id": 42, "hard_limit": 5, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:06:49.629739+00:00", "updated_at": null} +{"id": 42, "hard_limit": 5, "project_id": "fake_project", "resource": "Cluster", "created_at": "2026-01-22T07:15:22.754909+00:00", "updated_at": null} PATCH: /v1/quotas {'id': 42, 'project_id': 'fake_project', 'resource': 'Cluster', 'hard_limit': 20} +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +stdin:1:1: M338 Use assertIn/NotIn(A, B) rather than assertEqual(A in B, True/False) when checking collection contents. +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_equal_in +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_equal_in ... ok +stdin:1:1: M302 assertEqual(A is not None) sentences not allowed. +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_is_not_none +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_is_not_none ... ok +stdin:1:1: M316 assertTrue(isinstance(a, b)) sentences not allowed +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_true_isinstance +magnum.tests.unit.test_hacking.HackingTestCase.test_assert_true_isinstance ... ok +magnum.tests.unit.test_hacking.HackingTestCase.test_check_explicit_underscore_import +magnum.tests.unit.test_hacking.HackingTestCase.test_check_explicit_underscore_import ... ok +magnum.tests.unit.test_hacking.HackingTestCase.test_dict_constructor_with_list_copy +magnum.tests.unit.test_hacking.HackingTestCase.test_dict_constructor_with_list_copy ... ok +stdin:1:1: M352 LOG.warn is deprecated, please use LOG.warning! +magnum.tests.unit.test_hacking.HackingTestCase.test_no_log_warn +magnum.tests.unit.test_hacking.HackingTestCase.test_no_log_warn ... ok +stdin:1:1: M322 Method's default argument shouldn't be mutable! +magnum.tests.unit.test_hacking.HackingTestCase.test_no_mutable_default_args +magnum.tests.unit.test_hacking.HackingTestCase.test_no_mutable_default_args ... ok +stdin:1:1: M339 Do not use xrange(). +magnum.tests.unit.test_hacking.HackingTestCase.test_no_xrange +magnum.tests.unit.test_hacking.HackingTestCase.test_no_xrange ... ok +stdin:1:1: M310 timeutils.utcnow() must be used instead of datetime.now() +stdin:1:1: M310 timeutils.utcnow() must be used instead of datetime.utcnow() +magnum.tests.unit.test_hacking.HackingTestCase.test_use_timeunitls_utcow +magnum.tests.unit.test_hacking.HackingTestCase.test_use_timeunitls_utcow ... ok ---------------------------------------------------------------------- -Ran 1164 tests in 30.689s +Ran 1164 tests in 67.165s OK + stestr slowest Test id Runtime (s) ---------------------------------------------------------------------------------------------------------- ----------- -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client 1.035 -magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout 1.015 -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey 0.945 -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name 0.636 -magnum.tests.unit.common.x509.test_operations.TestX509Operations.test_generate_csr_and_key 0.600 -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name 0.591 -magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_unicode_private_key 0.519 -magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_set_extentions_as_ca 0.433 -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_unicode_csr 0.423 -magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_empty_chars 0.413 +magnum.tests.unit.common.test_utils.ExecuteTestCase.test_retry_on_failure 2.130 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_extentions_as_client 1.716 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_issuer_name 1.554 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_set_subject_name 1.518 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_client_certificate_has_publickey 1.351 +magnum.tests.unit.common.x509.test_sign.TestX509.test_generate_ca_certificate_with_bytes_issuer_name 1.272 +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_empty_chars 1.243 +magnum.tests.unit.common.test_octavia.OctaviaTest.test_delete_loadbalancers_timeout 1.033 +magnum.tests.unit.common.x509.test_sign.TestX509.test_load_pem_private_key_with_bytes_private_key 1.004 +magnum.tests.unit.common.x509.test_sign.TestX509.test_sign_with_unicode_csr 0.977 + rm -rf .stestr dh_install --fail-missing dh_install: warning: Please use dh_missing --list-missing/--fail-missing instead @@ -15060,9 +15108,9 @@ --namespace oslo.service.service \ --namespace keystonemiddleware.auth_token pkgos-readd-keystone-authtoken-missing-options /build/reproducible-path/magnum-19.0.0/debian/magnum-common/usr/share/magnum-common/magnum.conf keystone_authtoken magnum -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.rzOrR7:[keystone_authtoken]/www_authenticate_uri -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.rzOrR7:[keystone_authtoken]/auth_type -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.rzOrR7:[keystone_authtoken]/region_name +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.Y1hRXu:[keystone_authtoken]/www_authenticate_uri +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.Y1hRXu:[keystone_authtoken]/auth_type +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.Y1hRXu:[keystone_authtoken]/region_name pkgos-fix-config-default /build/reproducible-path/magnum-19.0.0/debian/magnum-common/usr/share/magnum-common/magnum.conf oslo_concurrency lock_path /var/lock/magnum pkgos_inifile: Setting value in /build/reproducible-path/magnum-19.0.0/debian/magnum-common/usr/share/magnum-common/magnum.conf:[oslo_concurrency]/lock_path pkgos-fix-config-default /build/reproducible-path/magnum-19.0.0/debian/magnum-common/usr/share/magnum-common/magnum.conf keystone_authtoken auth_protocol http @@ -15158,26 +15206,27 @@ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done -+ ls -1 debian/magnum-api.init.in debian/magnum-conductor.init.in -+ echo debian/magnum-api.init.in -+ sed s/.init.in// +++ ls -1 debian/magnum-api.init.in debian/magnum-conductor.init.in ++ for i in `ls -1 debian/*.init.in` +++ sed s/.init.in// +++ echo debian/magnum-api.init.in + MYINIT=debian/magnum-api + cp debian/magnum-api.init.in debian/magnum-api.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/magnum-api.init.in -+ echo debian/magnum-conductor.init.in -+ sed s/.init.in// ++ for i in `ls -1 debian/*.init.in` +++ echo debian/magnum-conductor.init.in +++ sed s/.init.in// + MYINIT=debian/magnum-conductor + cp debian/magnum-conductor.init.in debian/magnum-conductor.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/magnum-conductor.init.in -libfakeroot internal error: payload not recognized! # If there's a service.in file, use that one instead of the generated one set -e ; set -x ; for i in `ls -1 debian/*.service.in`; do \ MYPKG=`echo $i | sed s/.service.in//` ; \ cp $MYPKG.service.in $MYPKG.service ; \ done -+ ls -1 debian/*.service.in +++ ls -1 'debian/*.service.in' ls: cannot access 'debian/*.service.in': No such file or directory # Generate the systemd unit if there's no already existing .service.in set -e ; set -x ; for i in `ls debian/*.init.in` ; do \ @@ -15186,24 +15235,19 @@ pkgos-gen-systemd-unit $i ; \ fi \ done -+ ls debian/magnum-api.init.in debian/magnum-conductor.init.in -+ echo debian/magnum-api.init.in -+ sed s/.init.in/.service.in/ +++ ls debian/magnum-api.init.in debian/magnum-conductor.init.in ++ for i in `ls debian/*.init.in` +++ sed s/.init.in/.service.in/ +++ echo debian/magnum-api.init.in + MYINIT=debian/magnum-api.service.in -+ [ -e debian/magnum-api.service.in ] ++ '[' -e debian/magnum-api.service.in ']' + pkgos-gen-systemd-unit debian/magnum-api.init.in -libfakeroot internal error: payload not recognized! -libfakeroot internal error: payload not recognized! -libfakeroot internal error: payload not recognized! -libfakeroot internal error: payload not recognized! -+ echo debian/magnum-conductor.init.in -+ sed s/.init.in/.service.in/ ++ for i in `ls debian/*.init.in` +++ echo debian/magnum-conductor.init.in +++ sed s/.init.in/.service.in/ + MYINIT=debian/magnum-conductor.service.in -+ [ -e debian/magnum-conductor.service.in ] ++ '[' -e debian/magnum-conductor.service.in ']' + pkgos-gen-systemd-unit debian/magnum-conductor.init.in -libfakeroot internal error: payload not recognized! -libfakeroot internal error: payload not recognized! -libfakeroot internal error: payload not recognized! dh_installinit --error-handler=true make[1]: Leaving directory '/build/reproducible-path/magnum-19.0.0' dh_systemd_start -O--buildsystem=pybuild @@ -15233,8 +15277,8 @@ dh_builddeb -O--buildsystem=pybuild dpkg-deb: building package 'magnum-api' in '../magnum-api_19.0.0-3_all.deb'. dpkg-deb: building package 'python3-magnum' in '../python3-magnum_19.0.0-3_all.deb'. -dpkg-deb: building package 'magnum-common' in '../magnum-common_19.0.0-3_all.deb'. dpkg-deb: building package 'magnum-conductor' in '../magnum-conductor_19.0.0-3_all.deb'. +dpkg-deb: building package 'magnum-common' in '../magnum-common_19.0.0-3_all.deb'. dpkg-genbuildinfo --build=binary -O../magnum_19.0.0-3_arm64.buildinfo dpkg-genchanges --build=binary -O../magnum_19.0.0-3_arm64.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -15243,12 +15287,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/1715333/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1715333/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/1216815 and its subdirectories -I: Current time: Wed Jan 21 19:07:25 -12 2026 -I: pbuilder-time-stamp: 1769065645 +I: removing directory /srv/workspace/pbuilder/1715333 and its subdirectories +I: Current time: Thu Jan 22 21:17:03 +14 2026 +I: pbuilder-time-stamp: 1769066223