0s autopkgtest [09:35:37]: starting date and time: 2025-01-06 09:35:37+0000 0s autopkgtest [09:35:37]: git checkout: 325255d2 Merge branch 'pin-any-arch' into 'ubuntu/production' 0s autopkgtest [09:35:37]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.bpqypfg7/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:postgresql-17,src:icu --apt-upgrade slony1-2 --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=postgresql-17/17.2-1build2 icu/76.1-1ubuntu1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup --name adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9 --image adt/ubuntu-plucky-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 716s nova [W] Using flock in prodstack6-arm64 716s Creating nova instance adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9 from image adt/ubuntu-plucky-arm64-server-20250106.img (UUID 0be70afa-891d-4967-bd77-8481ebe681bd)... 716s nova [E] nova boot failed (attempt #0): 716s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 716s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 716s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 716s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 716s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 716s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 716s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 716s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 716s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 716s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 716s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:22 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-1e3ed99f-f819-4972-8c7e-cf717ca6fcb5 716s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 716s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-1e3ed99f-f819-4972-8c7e-cf717ca6fcb5 716s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 716s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12445 716s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "369f50a481564a2c9433776a4ebd224d", "name": "prod-proposed-migration-arm64", "password_expires_at": null}, "audit_ids": ["Ayh-4u3iQMmXMzDpf9gz_Q"], "expires_at": "2025-01-07T09:36:23.000000Z", "issued_at": "2025-01-06T09:36:23.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "bd8b3df3f03d43a0a9303b7c0434fdab", "name": "prod-proposed-migration-arm64_project"}, "is_domain": false, "roles": [{"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_bd8b3df3f03d43a0a9303b7c0434fdab", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 716s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" 716s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" 716s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 716s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Mon, 06 Jan 2025 09:36:23 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-1fe1d095-d691-448c-8845-0f59de3c21d4 x-openstack-request-id: req-1fe1d095-d691-448c-8845-0f59de3c21d4 716s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Mon, 06 Jan 2025 09:36:23 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-1fe1d095-d691-448c-8845-0f59de3c21d4 x-openstack-request-id: req-1fe1d095-d691-448c-8845-0f59de3c21d4 716s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 716s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 716s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:23 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-c8ba8d16-80fe-4e6f-be39-b6efee6f174c x-openstack-request-id: req-c8ba8d16-80fe-4e6f-be39-b6efee6f174c 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:23 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-c8ba8d16-80fe-4e6f-be39-b6efee6f174c x-openstack-request-id: req-c8ba8d16-80fe-4e6f-be39-b6efee6f174c 716s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 716s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 716s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-c8ba8d16-80fe-4e6f-be39-b6efee6f174c 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-c8ba8d16-80fe-4e6f-be39-b6efee6f174c 716s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 716s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 716s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 716s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 716s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 716s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 716s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 716s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 716s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 716s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/0be70afa-891d-4967-bd77-8481ebe681bd -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 716s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/0be70afa-891d-4967-bd77-8481ebe681bd HTTP/1.1" 200 2265 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2265 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:23 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-f8fdad44-0222-4b5c-8c54-bf4efaf6d0e4 716s DEBUG (session:580) RESP BODY: {"architecture": "aarch64", "base_image_ref": "fa5d7c74-19c1-4116-92ef-9e21d0c30165", "boot_roles": "member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "virt", "hw_video_model": "virtio", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "39cc09e9-290c-4598-acff-54d491f45294", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "25.04", "owner_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "owner_project_name": "prod-proposed-migration-arm64_project", "owner_user_name": "prod-proposed-migration-arm64", "product_name": "com.ubuntu.cloud.daily:server:25.04:arm64", "simplestreams_metadata": "{\"aliases\": \"25.04,p,plucky,devel\", \"arch\": \"arm64\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"9ade52c7f3514e83e15b4b3595f364a1\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-plucky-daily-arm64-server-20241215\", \"release\": \"plucky\", \"release_codename\": \"Pluck", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "369f50a481564a2c9433776a4ebd224d", "version_name": "20241215", "name": "adt/ubuntu-plucky-arm64-server-20250106.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 3001810944, "virtual_size": 21474836480, "status": "active", "checksum": "43f461a0562e68a4579a2763e56a2830", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "bd8b3df3f03d43a0a9303b7c0434fdab", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "a600861e978e60efffdd10aef5883d952a1bdcd411fd035b3c12332a038471c6222fdafe9a6c753d71b442c5f7bc5a26a53c2e38f673365da008f5a9152b12ab", "id": "0be70afa-891d-4967-bd77-8481ebe681bd", "created_at": "2025-01-06T01:06:18Z", "updated_at": "2025-01-06T01:06:52Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/0be70afa-891d-4967-bd77-8481ebe681bd/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/0be70afa-891d-4967-bd77-8481ebe681bd/snap", "tags": [], "self": "/v2/images/0be70afa-891d-4967-bd77-8481ebe681bd", "file": "/v2/images/0be70afa-891d-4967-bd77-8481ebe681bd/file", "schema": "/v2/schemas/image", "stores": "ceph"} 716s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/0be70afa-891d-4967-bd77-8481ebe681bd used request id req-f8fdad44-0222-4b5c-8c54-bf4efaf6d0e4 716s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest HTTP/1.1" 404 84 716s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 84 Content-Type: application/json; charset=UTF-8 Date: Mon, 06 Jan 2025 09:36:24 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-6baa4e1f-28c2-447d-bf61-b96aa99aeed8 x-openstack-request-id: req-6baa4e1f-28c2-447d-bf61-b96aa99aeed8 716s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest could not be found."}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest used request id req-6baa4e1f-28c2-447d-bf61-b96aa99aeed8 716s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 1739 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 1739 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:24 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-2acff47d-b751-4bf4-896c-6a809867e95c x-openstack-request-id: req-2acff47d-b751-4bf4-896c-6a809867e95c 716s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "062428d9-35a1-461f-a33a-38436ed516b4", "name": "autopkgtest-cpu8-ram16-disk160-arm64", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/062428d9-35a1-461f-a33a-38436ed516b4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/062428d9-35a1-461f-a33a-38436ed516b4"}], "description": null}, {"id": "8d27c5f0-65c7-4018-b3f7-50463875ab09", "name": "autopkgtest", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/8d27c5f0-65c7-4018-b3f7-50463875ab09"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/8d27c5f0-65c7-4018-b3f7-50463875ab09"}], "description": null}, {"id": "8ebe34fb-1390-4cc7-bbe5-0d38c80f2fb4", "name": "autopkgtest-cpu2-ram4-disk20-arm64", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/8ebe34fb-1390-4cc7-bbe5-0d38c80f2fb4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/8ebe34fb-1390-4cc7-bbe5-0d38c80f2fb4"}], "description": null}, {"id": "a8256f9e-53ee-4584-ad7f-60e088825b83", "name": "autopkgtest-big", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8256f9e-53ee-4584-ad7f-60e088825b83"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8256f9e-53ee-4584-ad7f-60e088825b83"}], "description": null}, {"id": "cfc564ac-9f6e-4477-91c4-a89ccb4b744e", "name": "autopkgtest-cpu4-ram8-disk100-arm64", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cfc564ac-9f6e-4477-91c4-a89ccb4b744e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cfc564ac-9f6e-4477-91c4-a89ccb4b744e"}], "description": null}]} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None used request id req-2acff47d-b751-4bf4-896c-6a809867e95c 716s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/8d27c5f0-65c7-4018-b3f7-50463875ab09 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/8d27c5f0-65c7-4018-b3f7-50463875ab09 HTTP/1.1" 200 613 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 613 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:24 GMT Keep-Alive: timeout=75, max=996 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-89e4d6ae-1d62-4c99-863f-b20ae7ab600e x-openstack-request-id: req-89e4d6ae-1d62-4c99-863f-b20ae7ab600e 716s DEBUG (session:580) RESP BODY: {"flavor": {"id": "8d27c5f0-65c7-4018-b3f7-50463875ab09", "name": "autopkgtest", "ram": 4096, "disk": 20, "swap": 0, "OS-FLV-EXT-DATA:ephemeral": 0, "OS-FLV-DISABLED:disabled": false, "vcpus": 2, "os-flavor-access:is_public": false, "rxtx_factor": 1.0, "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/8d27c5f0-65c7-4018-b3f7-50463875ab09"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/8d27c5f0-65c7-4018-b3f7-50463875ab09"}], "description": null, "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/8d27c5f0-65c7-4018-b3f7-50463875ab09 used request id req-89e4d6ae-1d62-4c99-863f-b20ae7ab600e 716s DEBUG (session:517) REQ: curl -g -i -X POST https://nova.ps6.canonical.com:8774/v2.1/servers -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" -d '{"server": {"name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "imageRef": "0be70afa-891d-4967-bd77-8481ebe681bd", "flavorRef": "8d27c5f0-65c7-4018-b3f7-50463875ab09", "user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "min_count": 1, "max_count": 1, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "networks": [{"uuid": "6ea4839c-9760-4b54-ab7d-70a6312667d1"}]}}' 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "POST /v2.1/servers HTTP/1.1" 202 477 716s DEBUG (session:548) RESP: [202] Connection: Keep-Alive Content-Length: 477 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:24 GMT Keep-Alive: timeout=75, max=995 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 location: https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 x-compute-request-id: req-728ddd06-24a8-43eb-849f-e4298e0fb1cd x-openstack-request-id: req-728ddd06-24a8-43eb-849f-e4298e0fb1cd 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "adminPass": "m7ebtzCT74eU"}} 716s DEBUG (session:936) POST call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers used request id req-728ddd06-24a8-43eb-849f-e4298e0fb1cd 716s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3224 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3224 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:25 GMT Keep-Alive: timeout=75, max=994 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-6bd86628-1caf-4a23-9c2e-4eeca6dcc67a x-openstack-request-id: req-6bd86628-1caf-4a23-9c2e-4eeca6dcc67a 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:36:25Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-6bd86628-1caf-4a23-9c2e-4eeca6dcc67a 716s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/0be70afa-891d-4967-bd77-8481ebe681bd -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/0be70afa-891d-4967-bd77-8481ebe681bd HTTP/1.1" 200 2265 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2265 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:25 GMT Keep-Alive: timeout=75, max=999 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-95f6a5ee-8a27-4ca6-8945-79d85e3c8c21 716s DEBUG (session:580) RESP BODY: {"architecture": "aarch64", "base_image_ref": "fa5d7c74-19c1-4116-92ef-9e21d0c30165", "boot_roles": "member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "virt", "hw_video_model": "virtio", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "39cc09e9-290c-4598-acff-54d491f45294", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "25.04", "owner_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "owner_project_name": "prod-proposed-migration-arm64_project", "owner_user_name": "prod-proposed-migration-arm64", "product_name": "com.ubuntu.cloud.daily:server:25.04:arm64", "simplestreams_metadata": "{\"aliases\": \"25.04,p,plucky,devel\", \"arch\": \"arm64\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"9ade52c7f3514e83e15b4b3595f364a1\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-plucky-daily-arm64-server-20241215\", \"release\": \"plucky\", \"release_codename\": \"Pluck", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "369f50a481564a2c9433776a4ebd224d", "version_name": "20241215", "name": "adt/ubuntu-plucky-arm64-server-20250106.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 3001810944, "virtual_size": 21474836480, "status": "active", "checksum": "43f461a0562e68a4579a2763e56a2830", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "bd8b3df3f03d43a0a9303b7c0434fdab", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "a600861e978e60efffdd10aef5883d952a1bdcd411fd035b3c12332a038471c6222fdafe9a6c753d71b442c5f7bc5a26a53c2e38f673365da008f5a9152b12ab", "id": "0be70afa-891d-4967-bd77-8481ebe681bd", "created_at": "2025-01-06T01:06:18Z", "updated_at": "2025-01-06T01:06:52Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/0be70afa-891d-4967-bd77-8481ebe681bd/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/0be70afa-891d-4967-bd77-8481ebe681bd/snap", "tags": [], "self": "/v2/images/0be70afa-891d-4967-bd77-8481ebe681bd", "file": "/v2/images/0be70afa-891d-4967-bd77-8481ebe681bd/file", "schema": "/v2/schemas/image", "stores": "ceph"} 716s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/0be70afa-891d-4967-bd77-8481ebe681bd used request id req-95f6a5ee-8a27-4ca6-8945-79d85e3c8c21 716s +--------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+ 716s | Property | Value | 716s +--------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+ 716s | OS-DCF:diskConfig | MANUAL | 716s | OS-EXT-AZ:availability_zone | | 716s | OS-EXT-SRV-ATTR:host | - | 716s | OS-EXT-SRV-ATTR:hostname | adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop | 716s | OS-EXT-SRV-ATTR:hypervisor_hostname | - | 716s | OS-EXT-SRV-ATTR:instance_name | | 716s | OS-EXT-SRV-ATTR:kernel_id | | 716s | OS-EXT-SRV-ATTR:launch_index | 0 | 716s | OS-EXT-SRV-ATTR:ramdisk_id | | 716s | OS-EXT-SRV-ATTR:reservation_id | r-57wrjyiw | 716s | OS-EXT-SRV-ATTR:root_device_name | - | 716s | OS-EXT-STS:power_state | 0 | 716s | OS-EXT-STS:task_state | scheduling | 716s | OS-EXT-STS:vm_state | building | 716s | OS-SRV-USG:launched_at | - | 716s | OS-SRV-USG:terminated_at | - | 716s | accessIPv4 | | 716s | accessIPv6 | | 716s | adminPass | m7ebtzCT74eU | 716s | config_drive | | 716s | created | 2025-01-06T09:36:25Z | 716s | description | - | 716s | flavor:disk | 20 | 716s | flavor:ephemeral | 0 | 716s | flavor:extra_specs | {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"} | 716s | flavor:original_name | autopkgtest | 716s | flavor:ram | 4096 | 716s | flavor:swap | 0 | 716s | flavor:vcpus | 2 | 716s | hostId | | 716s | id | 9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 | 716s | image | adt/ubuntu-plucky-arm64-server-20250106.img (0be70afa-891d-4967-bd77-8481ebe681bd) | 716s | key_name | testbed-juju-7f2275-prod-proposed-migration-environment-15 | 716s | locked | False | 716s | locked_reason | - | 716s | metadata | {} | 716s | name | adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9 | 716s | os-extended-volumes:volumes_attached | [] | 716s | progress | 0 | 716s | security_groups | autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup | 716s | server_groups | [] | 716s | status | BUILD | 716s | tags | [] | 716s | tenant_id | bd8b3df3f03d43a0a9303b7c0434fdab | 716s | trusted_image_certificates | - | 716s | updated | 2025-01-06T09:36:25Z | 716s | user_id | 369f50a481564a2c9433776a4ebd224d | 716s +--------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3224 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3224 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:25 GMT Keep-Alive: timeout=75, max=993 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a323ae1d-bcc0-43a3-afd2-c3c0da45b0fb x-openstack-request-id: req-a323ae1d-bcc0-43a3-afd2-c3c0da45b0fb 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:36:25Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-a323ae1d-bcc0-43a3-afd2-c3c0da45b0fb 716s 716s 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3260 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3260 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:30 GMT Keep-Alive: timeout=75, max=992 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-f533c3d0-8906-4ae5-8903-a14a44a49571 x-openstack-request-id: req-f533c3d0-8906-4ae5-8903-a14a44a49571 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:36:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-f533c3d0-8906-4ae5-8903-a14a44a49571 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3260 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3260 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:35 GMT Keep-Alive: timeout=75, max=991 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-7a8c195a-62fa-4fc8-a643-789e8995924a x-openstack-request-id: req-7a8c195a-62fa-4fc8-a643-789e8995924a 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:36:35Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-7a8c195a-62fa-4fc8-a643-789e8995924a 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3260 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3260 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:41 GMT Keep-Alive: timeout=75, max=990 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-4b3d3e36-7976-4afd-96b1-e618da67db00 x-openstack-request-id: req-4b3d3e36-7976-4afd-96b1-e618da67db00 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:36:41Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-4b3d3e36-7976-4afd-96b1-e618da67db00 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3260 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3260 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:46 GMT Keep-Alive: timeout=75, max=989 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-2dcc981a-6a81-4dfc-b50b-37142627d993 x-openstack-request-id: req-2dcc981a-6a81-4dfc-b50b-37142627d993 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:36:46Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-2dcc981a-6a81-4dfc-b50b-37142627d993 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3260 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3260 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:52 GMT Keep-Alive: timeout=75, max=988 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-6a08c0a0-14eb-4d96-b883-d74dcb4c0c24 x-openstack-request-id: req-6a08c0a0-14eb-4d96-b883-d74dcb4c0c24 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:36:52Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-6a08c0a0-14eb-4d96-b883-d74dcb4c0c24 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3260 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3260 Content-Type: application/json Date: Mon, 06 Jan 2025 09:36:57 GMT Keep-Alive: timeout=75, max=987 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-981e1755-78b3-470b-8d68-55463ce21255 x-openstack-request-id: req-981e1755-78b3-470b-8d68-55463ce21255 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:36:57Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-981e1755-78b3-470b-8d68-55463ce21255 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3260 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3260 Content-Type: application/json Date: Mon, 06 Jan 2025 09:37:02 GMT Keep-Alive: timeout=75, max=986 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-aafd3b34-a24b-4ddb-95f7-a25bde40a2c3 x-openstack-request-id: req-aafd3b34-a24b-4ddb-95f7-a25bde40a2c3 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:02Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-aafd3b34-a24b-4ddb-95f7-a25bde40a2c3 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3384 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3384 Content-Type: application/json Date: Mon, 06 Jan 2025 09:37:07 GMT Keep-Alive: timeout=75, max=985 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-2452f964-a78c-45cf-a9c5-530c30dc8d3a x-openstack-request-id: req-2452f964-a78c-45cf-a9c5-530c30dc8d3a 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-2452f964-a78c-45cf-a9c5-530c30dc8d3a 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:37:12 GMT Keep-Alive: timeout=75, max=984 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ea32eafb-2e0f-42ad-a41a-b6bd73106745 x-openstack-request-id: req-ea32eafb-2e0f-42ad-a41a-b6bd73106745 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-ea32eafb-2e0f-42ad-a41a-b6bd73106745 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:37:18 GMT Keep-Alive: timeout=75, max=983 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-e1ee80d6-b098-4af9-ade7-afd341c32e9f x-openstack-request-id: req-e1ee80d6-b098-4af9-ade7-afd341c32e9f 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-e1ee80d6-b098-4af9-ade7-afd341c32e9f 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:37:23 GMT Keep-Alive: timeout=75, max=982 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-45f26394-f2e3-473b-97dd-be8107e64c19 x-openstack-request-id: req-45f26394-f2e3-473b-97dd-be8107e64c19 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-45f26394-f2e3-473b-97dd-be8107e64c19 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:37:28 GMT Keep-Alive: timeout=75, max=981 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-8abe7142-0689-446c-9a4d-2ecebc0e2097 x-openstack-request-id: req-8abe7142-0689-446c-9a4d-2ecebc0e2097 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-8abe7142-0689-446c-9a4d-2ecebc0e2097 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:37:34 GMT Keep-Alive: timeout=75, max=980 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-1c20c05c-caa4-4b15-b644-a3f600f9f470 x-openstack-request-id: req-1c20c05c-caa4-4b15-b644-a3f600f9f470 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-1c20c05c-caa4-4b15-b644-a3f600f9f470 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:37:39 GMT Keep-Alive: timeout=75, max=979 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-7fa81d86-da24-44d6-ac93-a901fe86c77c x-openstack-request-id: req-7fa81d86-da24-44d6-ac93-a901fe86c77c 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-7fa81d86-da24-44d6-ac93-a901fe86c77c 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:37:44 GMT Keep-Alive: timeout=75, max=978 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-57044a1b-8d5e-4d95-892e-b508255c44a1 x-openstack-request-id: req-57044a1b-8d5e-4d95-892e-b508255c44a1 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-57044a1b-8d5e-4d95-892e-b508255c44a1 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:37:49 GMT Keep-Alive: timeout=75, max=977 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-2e3a62b1-cb63-40b7-810f-58b0b7050a11 x-openstack-request-id: req-2e3a62b1-cb63-40b7-810f-58b0b7050a11 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-2e3a62b1-cb63-40b7-810f-58b0b7050a11 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:37:55 GMT Keep-Alive: timeout=75, max=976 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-d79ba916-6a73-431a-87b4-4c3afa16f39b x-openstack-request-id: req-d79ba916-6a73-431a-87b4-4c3afa16f39b 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-d79ba916-6a73-431a-87b4-4c3afa16f39b 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:00 GMT Keep-Alive: timeout=75, max=975 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c33fb488-d785-4cfd-9c56-981e3ad00240 x-openstack-request-id: req-c33fb488-d785-4cfd-9c56-981e3ad00240 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-c33fb488-d785-4cfd-9c56-981e3ad00240 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:05 GMT Keep-Alive: timeout=75, max=974 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-dfc1c02b-26c7-4442-994a-958b8ab38e8b x-openstack-request-id: req-dfc1c02b-26c7-4442-994a-958b8ab38e8b 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-dfc1c02b-26c7-4442-994a-958b8ab38e8b 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:10 GMT Keep-Alive: timeout=75, max=973 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-2f841208-387e-437d-a9df-33110d240e4d x-openstack-request-id: req-2f841208-387e-437d-a9df-33110d240e4d 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-2f841208-387e-437d-a9df-33110d240e4d 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:15 GMT Keep-Alive: timeout=75, max=972 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b5842830-e897-4998-ab61-6462fd4fbfcb x-openstack-request-id: req-b5842830-e897-4998-ab61-6462fd4fbfcb 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-b5842830-e897-4998-ab61-6462fd4fbfcb 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:21 GMT Keep-Alive: timeout=75, max=971 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-006bfe84-65d3-4766-a5e3-52ba881639d4 x-openstack-request-id: req-006bfe84-65d3-4766-a5e3-52ba881639d4 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-006bfe84-65d3-4766-a5e3-52ba881639d4 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:26 GMT Keep-Alive: timeout=75, max=970 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-3ce8fffd-1228-4e0b-8fc3-f41a52daa757 x-openstack-request-id: req-3ce8fffd-1228-4e0b-8fc3-f41a52daa757 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-3ce8fffd-1228-4e0b-8fc3-f41a52daa757 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:31 GMT Keep-Alive: timeout=75, max=969 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-bcd6bbce-098f-4eeb-84e5-bc7c6625a471 x-openstack-request-id: req-bcd6bbce-098f-4eeb-84e5-bc7c6625a471 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-bcd6bbce-098f-4eeb-84e5-bc7c6625a471 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:36 GMT Keep-Alive: timeout=75, max=968 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-87d3b79d-bc6f-4458-8f87-11e41bfeed77 x-openstack-request-id: req-87d3b79d-bc6f-4458-8f87-11e41bfeed77 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-87d3b79d-bc6f-4458-8f87-11e41bfeed77 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:41 GMT Keep-Alive: timeout=75, max=967 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-78eb9ded-98f3-49aa-8446-f4823aa9db2d x-openstack-request-id: req-78eb9ded-98f3-49aa-8446-f4823aa9db2d 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-78eb9ded-98f3-49aa-8446-f4823aa9db2d 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:47 GMT Keep-Alive: timeout=75, max=966 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b0b68ec5-c069-4301-80de-dd6216f128dd x-openstack-request-id: req-b0b68ec5-c069-4301-80de-dd6216f128dd 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-b0b68ec5-c069-4301-80de-dd6216f128dd 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:52 GMT Keep-Alive: timeout=75, max=965 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-37e4ec9b-13d1-443b-9997-ee4d95bc0801 x-openstack-request-id: req-37e4ec9b-13d1-443b-9997-ee4d95bc0801 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-37e4ec9b-13d1-443b-9997-ee4d95bc0801 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:38:57 GMT Keep-Alive: timeout=75, max=964 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-43383749-4bb4-4555-ad04-1b252f691d0a x-openstack-request-id: req-43383749-4bb4-4555-ad04-1b252f691d0a 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-43383749-4bb4-4555-ad04-1b252f691d0a 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:39:02 GMT Keep-Alive: timeout=75, max=963 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-db0c8f9d-cefb-48d0-bcd9-654c09ebfd69 x-openstack-request-id: req-db0c8f9d-cefb-48d0-bcd9-654c09ebfd69 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-db0c8f9d-cefb-48d0-bcd9-654c09ebfd69 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:39:08 GMT Keep-Alive: timeout=75, max=962 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-940ba004-8de0-48ed-bdf7-e4cb5a112d48 x-openstack-request-id: req-940ba004-8de0-48ed-bdf7-e4cb5a112d48 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-940ba004-8de0-48ed-bdf7-e4cb5a112d48 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:39:13 GMT Keep-Alive: timeout=75, max=961 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-91959782-f863-4d59-85b1-3e4e0d1c3b1d x-openstack-request-id: req-91959782-f863-4d59-85b1-3e4e0d1c3b1d 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-91959782-f863-4d59-85b1-3e4e0d1c3b1d 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:39:18 GMT Keep-Alive: timeout=75, max=960 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-9c108995-091f-448d-af0c-3cdd06054dec x-openstack-request-id: req-9c108995-091f-448d-af0c-3cdd06054dec 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-9c108995-091f-448d-af0c-3cdd06054dec 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:39:23 GMT Keep-Alive: timeout=75, max=959 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c3050710-96bc-4972-b0e4-e8d7dc91e23d x-openstack-request-id: req-c3050710-96bc-4972-b0e4-e8d7dc91e23d 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-c3050710-96bc-4972-b0e4-e8d7dc91e23d 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:39:28 GMT Keep-Alive: timeout=75, max=958 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-f5b7bfbf-1704-4c51-a2e6-13ad54ae152b x-openstack-request-id: req-f5b7bfbf-1704-4c51-a2e6-13ad54ae152b 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-f5b7bfbf-1704-4c51-a2e6-13ad54ae152b 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:39:34 GMT Keep-Alive: timeout=75, max=957 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-bb6918a1-bc56-4669-afaa-2b13a4b6c296 x-openstack-request-id: req-bb6918a1-bc56-4669-afaa-2b13a4b6c296 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-bb6918a1-bc56-4669-afaa-2b13a4b6c296 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:39:39 GMT Keep-Alive: timeout=75, max=956 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-be606e3b-21bb-44fa-9906-65e0f7f2f552 x-openstack-request-id: req-be606e3b-21bb-44fa-9906-65e0f7f2f552 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-be606e3b-21bb-44fa-9906-65e0f7f2f552 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:39:44 GMT Keep-Alive: timeout=75, max=955 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-d45d5446-752b-4c89-9515-14b4e91af0d2 x-openstack-request-id: req-d45d5446-752b-4c89-9515-14b4e91af0d2 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-d45d5446-752b-4c89-9515-14b4e91af0d2 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:39:49 GMT Keep-Alive: timeout=75, max=954 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-e3b19f3b-a9de-40b9-8ca7-564768b332f6 x-openstack-request-id: req-e3b19f3b-a9de-40b9-8ca7-564768b332f6 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-e3b19f3b-a9de-40b9-8ca7-564768b332f6 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:39:54 GMT Keep-Alive: timeout=75, max=953 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-076fd419-abde-4a30-9d41-29d93af77fd8 x-openstack-request-id: req-076fd419-abde-4a30-9d41-29d93af77fd8 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-076fd419-abde-4a30-9d41-29d93af77fd8 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:00 GMT Keep-Alive: timeout=75, max=952 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-792c2fb2-cacf-4e06-b726-cf2ce1d79470 x-openstack-request-id: req-792c2fb2-cacf-4e06-b726-cf2ce1d79470 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-792c2fb2-cacf-4e06-b726-cf2ce1d79470 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:06 GMT Keep-Alive: timeout=75, max=951 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-68c13c76-f083-4b36-82fe-e4cfb550aa69 x-openstack-request-id: req-68c13c76-f083-4b36-82fe-e4cfb550aa69 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-68c13c76-f083-4b36-82fe-e4cfb550aa69 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:11 GMT Keep-Alive: timeout=75, max=950 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-06e6f9f2-7ff2-48bc-be43-9b009a48d266 x-openstack-request-id: req-06e6f9f2-7ff2-48bc-be43-9b009a48d266 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-06e6f9f2-7ff2-48bc-be43-9b009a48d266 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:16 GMT Keep-Alive: timeout=75, max=949 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b4371207-5d78-4b11-a05c-3e318da4cc02 x-openstack-request-id: req-b4371207-5d78-4b11-a05c-3e318da4cc02 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-b4371207-5d78-4b11-a05c-3e318da4cc02 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:22 GMT Keep-Alive: timeout=75, max=948 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-795e4128-82a1-420e-94d6-1b3626d756a6 x-openstack-request-id: req-795e4128-82a1-420e-94d6-1b3626d756a6 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-795e4128-82a1-420e-94d6-1b3626d756a6 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:27 GMT Keep-Alive: timeout=75, max=947 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ce6c246a-7eb2-4db6-88b5-75094c166996 x-openstack-request-id: req-ce6c246a-7eb2-4db6-88b5-75094c166996 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-ce6c246a-7eb2-4db6-88b5-75094c166996 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:32 GMT Keep-Alive: timeout=75, max=946 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-e9d9495c-de41-4e26-a6a1-4103ec71e940 x-openstack-request-id: req-e9d9495c-de41-4e26-a6a1-4103ec71e940 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-e9d9495c-de41-4e26-a6a1-4103ec71e940 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:37 GMT Keep-Alive: timeout=75, max=945 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-fff0f4ba-2b4d-42d6-a048-fc202a11de5a x-openstack-request-id: req-fff0f4ba-2b4d-42d6-a048-fc202a11de5a 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-fff0f4ba-2b4d-42d6-a048-fc202a11de5a 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:43 GMT Keep-Alive: timeout=75, max=944 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-2b8d31d2-050c-44ff-b69b-196a774b6253 x-openstack-request-id: req-2b8d31d2-050c-44ff-b69b-196a774b6253 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-2b8d31d2-050c-44ff-b69b-196a774b6253 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:48 GMT Keep-Alive: timeout=75, max=943 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-165bb07c-9310-4e33-8258-8e4111e6fba5 x-openstack-request-id: req-165bb07c-9310-4e33-8258-8e4111e6fba5 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-165bb07c-9310-4e33-8258-8e4111e6fba5 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:53 GMT Keep-Alive: timeout=75, max=942 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-8846414c-7123-4e26-ac98-f34d0ff2d74b x-openstack-request-id: req-8846414c-7123-4e26-ac98-f34d0ff2d74b 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-8846414c-7123-4e26-ac98-f34d0ff2d74b 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:40:58 GMT Keep-Alive: timeout=75, max=941 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-843a4429-9d72-4123-826a-cef44d7424cb x-openstack-request-id: req-843a4429-9d72-4123-826a-cef44d7424cb 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-843a4429-9d72-4123-826a-cef44d7424cb 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:41:04 GMT Keep-Alive: timeout=75, max=940 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-007067b3-bd48-4f33-abf7-426e71f4b328 x-openstack-request-id: req-007067b3-bd48-4f33-abf7-426e71f4b328 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-007067b3-bd48-4f33-abf7-426e71f4b328 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:41:09 GMT Keep-Alive: timeout=75, max=939 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-8b9b4c50-d84b-489d-b550-ee5324960e10 x-openstack-request-id: req-8b9b4c50-d84b-489d-b550-ee5324960e10 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-8b9b4c50-d84b-489d-b550-ee5324960e10 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:41:14 GMT Keep-Alive: timeout=75, max=938 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-4f37d1d2-fff4-488b-988e-51ff3cdab5d6 x-openstack-request-id: req-4f37d1d2-fff4-488b-988e-51ff3cdab5d6 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-4f37d1d2-fff4-488b-988e-51ff3cdab5d6 716s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f5fc2add45bdcfc2d2ded65da47f488c7108ba73847ba22e5ba87a3c95d6fb3b" -H "X-OpenStack-Nova-API-Version: 2.87" 716s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 HTTP/1.1" 200 3505 716s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Mon, 06 Jan 2025 09:41:20 GMT Keep-Alive: timeout=75, max=937 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c75bb557-f19f-4a70-b70d-0d7f0acd3ff3 x-openstack-request-id: req-c75bb557-f19f-4a70-b70d-0d7f0acd3ff3 716s DEBUG (session:580) RESP BODY: {"server": {"id": "9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1", "name": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-proposed-migration-environment-15-c016e425-03a0-4126-9d50-674c00b1f1b9", "status": "BUILD", "tenant_id": "bd8b3df3f03d43a0a9303b7c0434fdab", "user_id": "369f50a481564a2c9433776a4ebd224d", "metadata": {}, "hostId": "204f22f087a3cb0bee5381ad8ae2c73255df071eb6cdd3e63b78acce", "image": {"id": "0be70afa-891d-4967-bd77-8481ebe681bd", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/0be70afa-891d-4967-bd77-8481ebe681bd"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-arm64", "hw_rng:allowed": "True"}}, "created": "2025-01-06T09:36:25Z", "updated": "2025-01-06T09:37:06Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-1", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-36.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-0051cd64", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra1-arm64-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-57wrjyiw", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-arm64-slony1-2-20250106-093537-juju-7f2275-prod-prop", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tLHJhZG9zZ3cucHM1LmNhbm9uaWNhbC5jb20nXG4nID4+IC9ldGMvZW52aXJvbm1lbnQKIC0gc2VkIC1pIC1yICcvXjEyNy4wLjEuMS8gcy9hdXRvcGtndGVzdC1bXiBdK1wuL2F1dG9wa2d0ZXN0XC4vJyAvZXRjL2hvc3RzCg==", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 716s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/9d0ca12d-1be6-4de8-8a68-8a31e8e4ebb1 used request id req-c75bb557-f19f-4a70-b70d-0d7f0acd3ff3 716s Server building... 0% completetimeout: sending signal TERM to command ‘nova’ 719s autopkgtest [09:47:36]: testbed dpkg architecture: arm64 719s autopkgtest [09:47:36]: testbed apt version: 2.9.18 720s autopkgtest [09:47:37]: @@@@@@@@@@@@@@@@@@@@ test bed setup 720s autopkgtest [09:47:37]: testbed release detected to be: None 721s autopkgtest [09:47:38]: updating testbed package index (apt update) 721s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 721s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 721s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 721s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 721s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [17.2 kB] 721s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [105 kB] 721s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [741 kB] 722s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9708 B] 722s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 Packages [189 kB] 722s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/restricted arm64 Packages [57.8 kB] 722s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 Packages [825 kB] 722s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse arm64 Packages [23.1 kB] 722s Fetched 2042 kB in 1s (2142 kB/s) 723s Reading package lists... 724s Reading package lists... 724s Building dependency tree... 724s Reading state information... 725s Calculating upgrade... 725s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 725s Reading package lists... 725s Building dependency tree... 725s Reading state information... 726s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 726s autopkgtest [09:47:43]: upgrading testbed (apt dist-upgrade and autopurge) 726s Reading package lists... 727s Building dependency tree... 727s Reading state information... 727s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 727s Starting 2 pkgProblemResolver with broken count: 0 727s Done 728s Entering ResolveByKeep 728s 729s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 729s Reading package lists... 729s Building dependency tree... 729s Reading state information... 730s Starting pkgProblemResolver with broken count: 0 730s Starting 2 pkgProblemResolver with broken count: 0 730s Done 731s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 733s autopkgtest [09:47:50]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 16 14:19:41 UTC 2024 733s autopkgtest [09:47:50]: @@@@@@@@@@@@@@@@@@@@ apt-source slony1-2 737s Get:1 http://ftpmaster.internal/ubuntu plucky/universe slony1-2 2.2.11-4 (dsc) [2413 B] 737s Get:2 http://ftpmaster.internal/ubuntu plucky/universe slony1-2 2.2.11-4 (tar) [1465 kB] 737s Get:3 http://ftpmaster.internal/ubuntu plucky/universe slony1-2 2.2.11-4 (diff) [17.1 kB] 737s gpgv: Signature made Sun Jul 28 15:46:54 2024 UTC 737s gpgv: using RSA key 5C48FE6157F49179597087C64C5A6BAB12D2A7AE 737s gpgv: Can't check signature: No public key 737s dpkg-source: warning: cannot verify inline signature for ./slony1-2_2.2.11-4.dsc: no acceptable signature found 738s autopkgtest [09:47:55]: testing package slony1-2 version 2.2.11-4 738s autopkgtest [09:47:55]: build not needed 739s autopkgtest [09:47:56]: test load-functions: preparing testbed 739s Reading package lists... 740s Building dependency tree... 740s Reading state information... 740s Starting pkgProblemResolver with broken count: 0 740s Starting 2 pkgProblemResolver with broken count: 0 740s Done 741s The following NEW packages will be installed: 741s libjson-perl libpq5 libxslt1.1 postgresql-16 postgresql-16-slony1-2 741s postgresql-client-16 postgresql-client-common postgresql-common slony1-2-bin 741s slony1-2-doc ssl-cert 741s 0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded. 741s Need to get 17.4 MB of archives. 741s After this operation, 57.8 MB of additional disk space will be used. 741s Get:1 http://ftpmaster.internal/ubuntu plucky/main arm64 libjson-perl all 4.10000-1 [81.9 kB] 741s Get:2 http://ftpmaster.internal/ubuntu plucky/main arm64 postgresql-client-common all 262 [36.7 kB] 741s Get:3 http://ftpmaster.internal/ubuntu plucky/main arm64 ssl-cert all 1.1.3ubuntu1 [18.7 kB] 741s Get:4 http://ftpmaster.internal/ubuntu plucky/main arm64 postgresql-common all 262 [162 kB] 741s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 libpq5 arm64 17.2-1build2 [141 kB] 741s Get:6 http://ftpmaster.internal/ubuntu plucky/main arm64 libxslt1.1 arm64 1.1.39-0exp1ubuntu2 [168 kB] 741s Get:7 http://ftpmaster.internal/ubuntu plucky/main arm64 postgresql-client-16 arm64 16.4-3 [1269 kB] 741s Get:8 http://ftpmaster.internal/ubuntu plucky/main arm64 postgresql-16 arm64 16.4-3 [15.0 MB] 742s Get:9 http://ftpmaster.internal/ubuntu plucky/universe arm64 postgresql-16-slony1-2 arm64 2.2.11-4 [20.0 kB] 742s Get:10 http://ftpmaster.internal/ubuntu plucky/universe arm64 slony1-2-bin arm64 2.2.11-4 [222 kB] 742s Get:11 http://ftpmaster.internal/ubuntu plucky/universe arm64 slony1-2-doc all 2.2.11-4 [328 kB] 742s Preconfiguring packages ... 742s Fetched 17.4 MB in 1s (16.8 MB/s) 742s Selecting previously unselected package libjson-perl. 743s (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 ... 80185 files and directories currently installed.) 743s Preparing to unpack .../00-libjson-perl_4.10000-1_all.deb ... 743s Unpacking libjson-perl (4.10000-1) ... 743s Selecting previously unselected package postgresql-client-common. 743s Preparing to unpack .../01-postgresql-client-common_262_all.deb ... 743s Unpacking postgresql-client-common (262) ... 743s Selecting previously unselected package ssl-cert. 743s Preparing to unpack .../02-ssl-cert_1.1.3ubuntu1_all.deb ... 743s Unpacking ssl-cert (1.1.3ubuntu1) ... 743s Selecting previously unselected package postgresql-common. 743s Preparing to unpack .../03-postgresql-common_262_all.deb ... 743s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 743s Unpacking postgresql-common (262) ... 743s Selecting previously unselected package libpq5:arm64. 743s Preparing to unpack .../04-libpq5_17.2-1build2_arm64.deb ... 743s Unpacking libpq5:arm64 (17.2-1build2) ... 743s Selecting previously unselected package libxslt1.1:arm64. 743s Preparing to unpack .../05-libxslt1.1_1.1.39-0exp1ubuntu2_arm64.deb ... 743s Unpacking libxslt1.1:arm64 (1.1.39-0exp1ubuntu2) ... 743s Selecting previously unselected package postgresql-client-16. 743s Preparing to unpack .../06-postgresql-client-16_16.4-3_arm64.deb ... 743s Unpacking postgresql-client-16 (16.4-3) ... 743s Selecting previously unselected package postgresql-16. 743s Preparing to unpack .../07-postgresql-16_16.4-3_arm64.deb ... 743s Unpacking postgresql-16 (16.4-3) ... 744s Selecting previously unselected package postgresql-16-slony1-2. 744s Preparing to unpack .../08-postgresql-16-slony1-2_2.2.11-4_arm64.deb ... 744s Unpacking postgresql-16-slony1-2 (2.2.11-4) ... 744s Selecting previously unselected package slony1-2-bin. 744s Preparing to unpack .../09-slony1-2-bin_2.2.11-4_arm64.deb ... 744s Unpacking slony1-2-bin (2.2.11-4) ... 744s Selecting previously unselected package slony1-2-doc. 744s Preparing to unpack .../10-slony1-2-doc_2.2.11-4_all.deb ... 744s Unpacking slony1-2-doc (2.2.11-4) ... 744s Setting up postgresql-client-common (262) ... 744s Setting up libpq5:arm64 (17.2-1build2) ... 744s Setting up ssl-cert (1.1.3ubuntu1) ... 745s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 745s Setting up libjson-perl (4.10000-1) ... 745s Setting up libxslt1.1:arm64 (1.1.39-0exp1ubuntu2) ... 745s Setting up slony1-2-doc (2.2.11-4) ... 745s Setting up postgresql-client-16 (16.4-3) ... 745s update-alternatives: using /usr/share/postgresql/16/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode 745s Setting up postgresql-common (262) ... 746s Creating config file /etc/postgresql-common/createcluster.conf with new version 746s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 746s Removing obsolete dictionary files: 747s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 747s Setting up slony1-2-bin (2.2.11-4) ... 747s Setting up postgresql-16 (16.4-3) ... 748s Creating new PostgreSQL cluster 16/main ... 748s /usr/lib/postgresql/16/bin/initdb -D /var/lib/postgresql/16/main --auth-local peer --auth-host scram-sha-256 --no-instructions 748s The files belonging to this database system will be owned by user "postgres". 748s This user must also own the server process. 748s 748s The database cluster will be initialized with locale "C.UTF-8". 748s The default database encoding has accordingly been set to "UTF8". 748s The default text search configuration will be set to "english". 748s 748s Data page checksums are disabled. 748s 748s fixing permissions on existing directory /var/lib/postgresql/16/main ... ok 748s creating subdirectories ... ok 748s selecting dynamic shared memory implementation ... posix 748s selecting default max_connections ... 100 748s selecting default shared_buffers ... 128MB 748s selecting default time zone ... Etc/UTC 748s creating configuration files ... ok 748s running bootstrap script ... ok 748s performing post-bootstrap initialization ... ok 748s syncing data to disk ... ok 752s Setting up postgresql-16-slony1-2 (2.2.11-4) ... 752s Processing triggers for libc-bin (2.40-4ubuntu1) ... 752s Processing triggers for man-db (2.13.0-1) ... 755s autopkgtest [09:48:12]: test load-functions: [----------------------- 755s ### PostgreSQL 16 psql ### 756s Creating new PostgreSQL cluster 16/regress ... 759s create table public.sl_node ( 759s no_id int4, 759s no_active bool, 759s no_comment text, 759s no_failed bool, 759s CONSTRAINT "sl_node-pkey" 759s PRIMARY KEY (no_id) 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_node is 'Holds the list of nodes associated with this namespace.'; 759s COMMENT 759s comment on column public.sl_node.no_id is 'The unique ID number for the node'; 759s COMMENT 759s comment on column public.sl_node.no_active is 'Is the node active in replication yet?'; 759s COMMENT 759s comment on column public.sl_node.no_comment is 'A human-oriented description of the node'; 759s COMMENT 759s create table public.sl_nodelock ( 759s nl_nodeid int4, 759s nl_conncnt serial, 759s nl_backendpid int4, 759s CONSTRAINT "sl_nodelock-pkey" 759s PRIMARY KEY (nl_nodeid, nl_conncnt) 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_nodelock is 'Used to prevent multiple slon instances and to identify the backends to kill in terminateNodeConnections().'; 759s COMMENT 759s comment on column public.sl_nodelock.nl_nodeid is 'Clients node_id'; 759s COMMENT 759s comment on column public.sl_nodelock.nl_conncnt is 'Clients connection number'; 759s COMMENT 759s comment on column public.sl_nodelock.nl_backendpid is 'PID of database backend owning this lock'; 759s COMMENT 759s create table public.sl_set ( 759s set_id int4, 759s set_origin int4, 759s set_locked bigint, 759s set_comment text, 759s CONSTRAINT "sl_set-pkey" 759s PRIMARY KEY (set_id), 759s CONSTRAINT "set_origin-no_id-ref" 759s FOREIGN KEY (set_origin) 759s REFERENCES public.sl_node (no_id) 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_set is 'Holds definitions of replication sets.'; 759s COMMENT 759s comment on column public.sl_set.set_id is 'A unique ID number for the set.'; 759s COMMENT 759s comment on column public.sl_set.set_origin is 759s 'The ID number of the source node for the replication set.'; 759s COMMENT 759s comment on column public.sl_set.set_locked is 'Transaction ID where the set was locked.'; 759s COMMENT 759s comment on column public.sl_set.set_comment is 'A human-oriented description of the set.'; 759s COMMENT 759s create table public.sl_setsync ( 759s ssy_setid int4, 759s ssy_origin int4, 759s ssy_seqno int8, 759s ssy_snapshot "pg_catalog".txid_snapshot, 759s ssy_action_list text, 759s CONSTRAINT "sl_setsync-pkey" 759s PRIMARY KEY (ssy_setid), 759s CONSTRAINT "ssy_setid-set_id-ref" 759s FOREIGN KEY (ssy_setid) 759s REFERENCES public.sl_set (set_id), 759s CONSTRAINT "ssy_origin-no_id-ref" 759s FOREIGN KEY (ssy_origin) 759s REFERENCES public.sl_node (no_id) 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_setsync is 'SYNC information'; 759s COMMENT 759s comment on column public.sl_setsync.ssy_setid is 'ID number of the replication set'; 759s COMMENT 759s comment on column public.sl_setsync.ssy_origin is 'ID number of the node'; 759s COMMENT 759s comment on column public.sl_setsync.ssy_seqno is 'Slony-I sequence number'; 759s COMMENT 759s comment on column public.sl_setsync.ssy_snapshot is 'TXID in provider system seen by the event'; 759s COMMENT 759s comment on column public.sl_setsync.ssy_action_list is 'action list used during the subscription process. At the time a subscriber copies over data from the origin, it sees all tables in a state somewhere between two SYNC events. Therefore this list must contains all log_actionseqs that are visible at that time, whose operations have therefore already been included in the data copied at the time the initial data copy is done. Those actions may therefore be filtered out of the first SYNC done after subscribing.'; 759s COMMENT 759s create table public.sl_table ( 759s tab_id int4, 759s tab_reloid oid UNIQUE NOT NULL, 759s tab_relname name NOT NULL, 759s tab_nspname name NOT NULL, 759s tab_set int4, 759s tab_idxname name NOT NULL, 759s tab_altered boolean NOT NULL, 759s tab_comment text, 759s CONSTRAINT "sl_table-pkey" 759s PRIMARY KEY (tab_id), 759s CONSTRAINT "tab_set-set_id-ref" 759s FOREIGN KEY (tab_set) 759s REFERENCES public.sl_set (set_id) 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_table is 'Holds information about the tables being replicated.'; 759s COMMENT 759s comment on column public.sl_table.tab_id is 'Unique key for Slony-I to use to identify the table'; 759s COMMENT 759s comment on column public.sl_table.tab_reloid is 'The OID of the table in pg_catalog.pg_class.oid'; 759s COMMENT 759s comment on column public.sl_table.tab_relname is 'The name of the table in pg_catalog.pg_class.relname used to recover from a dump/restore cycle'; 759s COMMENT 759s comment on column public.sl_table.tab_nspname is 'The name of the schema in pg_catalog.pg_namespace.nspname used to recover from a dump/restore cycle'; 759s COMMENT 759s comment on column public.sl_table.tab_set is 'ID of the replication set the table is in'; 759s COMMENT 759s comment on column public.sl_table.tab_idxname is 'The name of the primary index of the table'; 759s COMMENT 759s comment on column public.sl_table.tab_altered is 'Has the table been modified for replication?'; 759s COMMENT 759s comment on column public.sl_table.tab_comment is 'Human-oriented description of the table'; 759s COMMENT 759s create table public.sl_sequence ( 759s seq_id int4, 759s seq_reloid oid UNIQUE NOT NULL, 759s seq_relname name NOT NULL, 759s seq_nspname name NOT NULL, 759s seq_set int4, 759s seq_comment text, 759s CONSTRAINT "sl_sequence-pkey" 759s PRIMARY KEY (seq_id), 759s CONSTRAINT "seq_set-set_id-ref" 759s FOREIGN KEY (seq_set) 759s REFERENCES public.sl_set (set_id) 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_sequence is 'Similar to sl_table, each entry identifies a sequence being replicated.'; 759s COMMENT 759s comment on column public.sl_sequence.seq_id is 'An internally-used ID for Slony-I to use in its sequencing of updates'; 759s COMMENT 759s comment on column public.sl_sequence.seq_reloid is 'The OID of the sequence object'; 759s COMMENT 759s comment on column public.sl_sequence.seq_relname is 'The name of the sequence in pg_catalog.pg_class.relname used to recover from a dump/restore cycle'; 759s COMMENT 759s comment on column public.sl_sequence.seq_nspname is 'The name of the schema in pg_catalog.pg_namespace.nspname used to recover from a dump/restore cycle'; 759s COMMENT 759s comment on column public.sl_sequence.seq_set is 'Indicates which replication set the object is in'; 759s COMMENT 759s comment on column public.sl_sequence.seq_comment is 'A human-oriented comment'; 759s COMMENT 759s create table public.sl_path ( 759s pa_server int4, 759s pa_client int4, 759s pa_conninfo text NOT NULL, 759s pa_connretry int4, 759s CONSTRAINT "sl_path-pkey" 759s PRIMARY KEY (pa_server, pa_client), 759s CONSTRAINT "pa_server-no_id-ref" 759s FOREIGN KEY (pa_server) 759s REFERENCES public.sl_node (no_id), 759s CONSTRAINT "pa_client-no_id-ref" 759s FOREIGN KEY (pa_client) 759s REFERENCES public.sl_node (no_id) 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_path is 'Holds connection information for the paths between nodes, and the synchronisation delay'; 759s COMMENT 759s comment on column public.sl_path.pa_server is 'The Node ID # (from sl_node.no_id) of the data source'; 759s COMMENT 759s comment on column public.sl_path.pa_client is 'The Node ID # (from sl_node.no_id) of the data target'; 759s COMMENT 759s comment on column public.sl_path.pa_conninfo is 'The PostgreSQL connection string used to connect to the source node.'; 759s COMMENT 759s comment on column public.sl_path.pa_connretry is 'The synchronisation delay, in seconds'; 759s COMMENT 759s create table public.sl_listen ( 759s li_origin int4, 759s li_provider int4, 759s li_receiver int4, 759s CONSTRAINT "sl_listen-pkey" 759s PRIMARY KEY (li_origin, li_provider, li_receiver), 759s CONSTRAINT "li_origin-no_id-ref" 759s FOREIGN KEY (li_origin) 759s REFERENCES public.sl_node (no_id), 759s CONSTRAINT "sl_listen-sl_path-ref" 759s FOREIGN KEY (li_provider, li_receiver) 759s REFERENCES public.sl_path (pa_server, pa_client) 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_listen is 'Indicates how nodes listen to events from other nodes in the Slony-I network.'; 759s COMMENT 759s comment on column public.sl_listen.li_origin is 'The ID # (from sl_node.no_id) of the node this listener is operating on'; 759s COMMENT 759s comment on column public.sl_listen.li_provider is 'The ID # (from sl_node.no_id) of the source node for this listening event'; 759s COMMENT 759s comment on column public.sl_listen.li_receiver is 'The ID # (from sl_node.no_id) of the target node for this listening event'; 759s COMMENT 759s create table public.sl_subscribe ( 759s sub_set int4, 759s sub_provider int4, 759s sub_receiver int4, 759s sub_forward bool, 759s sub_active bool, 759s CONSTRAINT "sl_subscribe-pkey" 759s PRIMARY KEY (sub_receiver, sub_set), 759s CONSTRAINT "sl_subscribe-sl_path-ref" 759s FOREIGN KEY (sub_provider, sub_receiver) 759s REFERENCES public.sl_path (pa_server, pa_client), 759s CONSTRAINT "sub_set-set_id-ref" 759s FOREIGN KEY (sub_set) 759s REFERENCES public.sl_set (set_id) 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_subscribe is 'Holds a list of subscriptions on sets'; 759s COMMENT 759s comment on column public.sl_subscribe.sub_set is 'ID # (from sl_set) of the set being subscribed to'; 759s COMMENT 759s comment on column public.sl_subscribe.sub_provider is 'ID# (from sl_node) of the node providing data'; 759s COMMENT 759s comment on column public.sl_subscribe.sub_receiver is 'ID# (from sl_node) of the node receiving data from the provider'; 759s COMMENT 759s comment on column public.sl_subscribe.sub_forward is 'Does this provider keep data in sl_log_1/sl_log_2 to allow it to be a provider for other nodes?'; 759s COMMENT 759s comment on column public.sl_subscribe.sub_active is 'Has this subscription been activated? This is not set on the subscriber until AFTER the subscriber has received COPY data from the provider'; 759s COMMENT 759s create table public.sl_event ( 759s ev_origin int4, 759s ev_seqno int8, 759s ev_timestamp timestamptz, 759s ev_snapshot "pg_catalog".txid_snapshot, 759s ev_type text, 759s ev_data1 text, 759s ev_data2 text, 759s ev_data3 text, 759s ev_data4 text, 759s ev_data5 text, 759s ev_data6 text, 759s ev_data7 text, 759s ev_data8 text, 759s CONSTRAINT "sl_event-pkey" 759s PRIMARY KEY (ev_origin, ev_seqno) 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_event is 'Holds information about replication events. After a period of time, Slony removes old confirmed events from both this table and the sl_confirm table.'; 759s COMMENT 759s comment on column public.sl_event.ev_origin is 'The ID # (from sl_node.no_id) of the source node for this event'; 759s COMMENT 759s comment on column public.sl_event.ev_seqno is 'The ID # for the event'; 759s COMMENT 759s comment on column public.sl_event.ev_timestamp is 'When this event record was created'; 759s COMMENT 759s comment on column public.sl_event.ev_snapshot is 'TXID snapshot on provider node for this event'; 759s COMMENT 759s comment on column public.sl_event.ev_seqno is 'The ID # for the event'; 759s COMMENT 759s comment on column public.sl_event.ev_type is 'The type of event this record is for. 759s SYNC = Synchronise 759s STORE_NODE = 759s ENABLE_NODE = 759s DROP_NODE = 759s STORE_PATH = 759s DROP_PATH = 759s STORE_LISTEN = 759s DROP_LISTEN = 759s STORE_SET = 759s DROP_SET = 759s MERGE_SET = 759s SET_ADD_TABLE = 759s SET_ADD_SEQUENCE = 759s STORE_TRIGGER = 759s DROP_TRIGGER = 759s MOVE_SET = 759s ACCEPT_SET = 759s SET_DROP_TABLE = 759s SET_DROP_SEQUENCE = 759s SET_MOVE_TABLE = 759s SET_MOVE_SEQUENCE = 759s FAILOVER_SET = 759s SUBSCRIBE_SET = 759s ENABLE_SUBSCRIPTION = 759s UNSUBSCRIBE_SET = 759s DDL_SCRIPT = 759s ADJUST_SEQ = 759s RESET_CONFIG = 759s '; 759s COMMENT 759s comment on column public.sl_event.ev_data1 is 'Data field containing an argument needed to process the event'; 759s COMMENT 759s comment on column public.sl_event.ev_data2 is 'Data field containing an argument needed to process the event'; 759s COMMENT 759s comment on column public.sl_event.ev_data3 is 'Data field containing an argument needed to process the event'; 759s COMMENT 759s comment on column public.sl_event.ev_data4 is 'Data field containing an argument needed to process the event'; 759s COMMENT 759s comment on column public.sl_event.ev_data5 is 'Data field containing an argument needed to process the event'; 759s COMMENT 759s comment on column public.sl_event.ev_data6 is 'Data field containing an argument needed to process the event'; 759s COMMENT 759s comment on column public.sl_event.ev_data7 is 'Data field containing an argument needed to process the event'; 759s COMMENT 759s comment on column public.sl_event.ev_data8 is 'Data field containing an argument needed to process the event'; 759s COMMENT 759s create table public.sl_confirm ( 759s con_origin int4, 759s con_received int4, 759s con_seqno int8, 759s con_timestamp timestamptz DEFAULT timeofday()::timestamptz 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_confirm is 'Holds confirmation of replication events. After a period of time, Slony removes old confirmed events from both this table and the sl_event table.'; 759s COMMENT 759s comment on column public.sl_confirm.con_origin is 'The ID # (from sl_node.no_id) of the source node for this event'; 759s COMMENT 759s comment on column public.sl_confirm.con_seqno is 'The ID # for the event'; 759s COMMENT 759s comment on column public.sl_confirm.con_timestamp is 'When this event was confirmed'; 759s COMMENT 759s create index sl_confirm_idx1 on public.sl_confirm 759s (con_origin, con_received, con_seqno); 759s CREATE INDEX 759s create index sl_confirm_idx2 on public.sl_confirm 759s (con_received, con_seqno); 759s CREATE INDEX 759s create table public.sl_seqlog ( 759s seql_seqid int4, 759s seql_origin int4, 759s seql_ev_seqno int8, 759s seql_last_value int8 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_seqlog is 'Log of Sequence updates'; 759s COMMENT 759s comment on column public.sl_seqlog.seql_seqid is 'Sequence ID'; 759s COMMENT 759s comment on column public.sl_seqlog.seql_origin is 'Publisher node at which the sequence originates'; 759s COMMENT 759s comment on column public.sl_seqlog.seql_ev_seqno is 'Slony-I Event with which this sequence update is associated'; 759s COMMENT 759s comment on column public.sl_seqlog.seql_last_value is 'Last value published for this sequence'; 759s COMMENT 759s create index sl_seqlog_idx on public.sl_seqlog 759s (seql_origin, seql_ev_seqno, seql_seqid); 759s CREATE INDEX 759s create function public.sequenceLastValue(p_seqname text) returns int8 759s as $$ 759s declare 759s v_seq_row record; 759s begin 759s for v_seq_row in execute 'select last_value from ' || public.slon_quote_input(p_seqname) 759s loop 759s return v_seq_row.last_value; 759s end loop; 759s 759s -- not reached 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.sequenceLastValue(p_seqname text) is 759s 'sequenceLastValue(p_seqname) 759s 759s Utility function used in sl_seqlastvalue view to compactly get the 759s last value from the requested sequence.'; 759s COMMENT 759s create table public.sl_log_1 ( 759s log_origin int4, 759s log_txid bigint, 759s log_tableid int4, 759s log_actionseq int8, 759s log_tablenspname text, 759s log_tablerelname text, 759s log_cmdtype "char", 759s log_cmdupdncols int4, 759s log_cmdargs text[] 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s create index sl_log_1_idx1 on public.sl_log_1 759s (log_origin, log_txid, log_actionseq); 759s CREATE INDEX 759s comment on table public.sl_log_1 is 'Stores each change to be propagated to subscriber nodes'; 759s COMMENT 759s comment on column public.sl_log_1.log_origin is 'Origin node from which the change came'; 759s COMMENT 759s comment on column public.sl_log_1.log_txid is 'Transaction ID on the origin node'; 759s COMMENT 759s comment on column public.sl_log_1.log_tableid is 'The table ID (from sl_table.tab_id) that this log entry is to affect'; 759s COMMENT 759s comment on column public.sl_log_1.log_actionseq is 'The sequence number in which actions will be applied on replicas'; 759s COMMENT 759s comment on column public.sl_log_1.log_tablenspname is 'The schema name of the table affected'; 759s COMMENT 759s comment on column public.sl_log_1.log_tablerelname is 'The table name of the table affected'; 759s COMMENT 759s comment on column public.sl_log_1.log_cmdtype is 'Replication action to take. U = Update, I = Insert, D = DELETE, T = TRUNCATE'; 759s COMMENT 759s comment on column public.sl_log_1.log_cmdupdncols is 'For cmdtype=U the number of updated columns in cmdargs'; 759s COMMENT 759s comment on column public.sl_log_1.log_cmdargs is 'The data needed to perform the log action on the replica'; 759s COMMENT 759s create table public.sl_log_2 ( 759s log_origin int4, 759s log_txid bigint, 759s log_tableid int4, 759s log_actionseq int8, 759s log_tablenspname text, 759s log_tablerelname text, 759s log_cmdtype "char", 759s log_cmdupdncols int4, 759s log_cmdargs text[] 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s create index sl_log_2_idx1 on public.sl_log_2 759s (log_origin, log_txid, log_actionseq); 759s CREATE INDEX 759s comment on table public.sl_log_2 is 'Stores each change to be propagated to subscriber nodes'; 759s COMMENT 759s comment on column public.sl_log_2.log_origin is 'Origin node from which the change came'; 759s COMMENT 759s comment on column public.sl_log_2.log_txid is 'Transaction ID on the origin node'; 759s COMMENT 759s comment on column public.sl_log_2.log_tableid is 'The table ID (from sl_table.tab_id) that this log entry is to affect'; 759s COMMENT 759s comment on column public.sl_log_2.log_actionseq is 'The sequence number in which actions will be applied on replicas'; 759s COMMENT 759s comment on column public.sl_log_2.log_tablenspname is 'The schema name of the table affected'; 759s COMMENT 759s comment on column public.sl_log_2.log_tablerelname is 'The table name of the table affected'; 759s COMMENT 759s comment on column public.sl_log_2.log_cmdtype is 'Replication action to take. U = Update, I = Insert, D = DELETE, T = TRUNCATE'; 759s COMMENT 759s comment on column public.sl_log_2.log_cmdupdncols is 'For cmdtype=U the number of updated columns in cmdargs'; 759s COMMENT 759s comment on column public.sl_log_2.log_cmdargs is 'The data needed to perform the log action on the replica'; 759s COMMENT 759s create table public.sl_log_script ( 759s log_origin int4, 759s log_txid bigint, 759s log_actionseq int8, 759s log_cmdtype "char", 759s log_cmdargs text[] 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s create index sl_log_script_idx1 on public.sl_log_script 759s (log_origin, log_txid, log_actionseq); 759s CREATE INDEX 759s comment on table public.sl_log_script is 'Captures SQL script queries to be propagated to subscriber nodes'; 759s COMMENT 759s comment on column public.sl_log_script.log_origin is 'Origin name from which the change came'; 759s COMMENT 759s comment on column public.sl_log_script.log_txid is 'Transaction ID on the origin node'; 759s COMMENT 759s comment on column public.sl_log_script.log_actionseq is 'The sequence number in which actions will be applied on replicas'; 759s COMMENT 759s comment on column public.sl_log_2.log_cmdtype is 'Replication action to take. S = Script statement, s = Script complete'; 759s COMMENT 759s comment on column public.sl_log_script.log_cmdargs is 'The DDL statement, optionally followed by selected nodes to execute it on.'; 759s COMMENT 759s create table public.sl_registry ( 759s reg_key text primary key, 759s reg_int4 int4, 759s reg_text text, 759s reg_timestamp timestamptz 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s comment on table public.sl_registry is 'Stores miscellaneous runtime data'; 759s COMMENT 759s comment on column public.sl_registry.reg_key is 'Unique key of the runtime option'; 759s COMMENT 759s comment on column public.sl_registry.reg_int4 is 'Option value if type int4'; 759s COMMENT 759s comment on column public.sl_registry.reg_text is 'Option value if type text'; 759s COMMENT 759s comment on column public.sl_registry.reg_timestamp is 'Option value if type timestamp'; 759s COMMENT 759s create table public.sl_apply_stats ( 759s as_origin int4, 759s as_num_insert int8, 759s as_num_update int8, 759s as_num_delete int8, 759s as_num_truncate int8, 759s as_num_script int8, 759s as_num_total int8, 759s as_duration interval, 759s as_apply_first timestamptz, 759s as_apply_last timestamptz, 759s as_cache_prepare int8, 759s as_cache_hit int8, 759s as_cache_evict int8, 759s as_cache_prepare_max int8 759s ) WITHOUT OIDS; 759s CREATE TABLE 759s create index sl_apply_stats_idx1 on public.sl_apply_stats 759s (as_origin); 759s CREATE INDEX 759s comment on table public.sl_apply_stats is 'Local SYNC apply statistics (running totals)'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_origin is 'Origin of the SYNCs'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_num_insert is 'Number of INSERT operations performed'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_num_update is 'Number of UPDATE operations performed'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_num_delete is 'Number of DELETE operations performed'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_num_truncate is 'Number of TRUNCATE operations performed'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_num_script is 'Number of DDL operations performed'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_num_total is 'Total number of operations'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_duration is 'Processing time'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_apply_first is 'Timestamp of first recorded SYNC'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_apply_last is 'Timestamp of most recent recorded SYNC'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_cache_evict is 'Number of apply query cache evict operations'; 759s COMMENT 759s comment on column public.sl_apply_stats.as_cache_prepare_max is 'Maximum number of apply queries prepared in one SYNC group'; 759s COMMENT 759s create view public.sl_seqlastvalue as 759s select SQ.seq_id, SQ.seq_set, SQ.seq_reloid, 759s S.set_origin as seq_origin, 759s public.sequenceLastValue( 759s "pg_catalog".quote_ident(PGN.nspname) || '.' || 759s "pg_catalog".quote_ident(PGC.relname)) as seq_last_value 759s from public.sl_sequence SQ, public.sl_set S, 759s "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN 759s where S.set_id = SQ.seq_set 759s and PGC.oid = SQ.seq_reloid and PGN.oid = PGC.relnamespace; 759s CREATE VIEW 759s create view public.sl_failover_targets as 759s select set_id, 759s set_origin as set_origin, 759s sub1.sub_receiver as backup_id 759s FROM 759s public.sl_subscribe sub1 759s ,public.sl_set set1 759s where 759s sub1.sub_set=set_id 759s and sub1.sub_forward=true 759s --exclude candidates where the set_origin 759s --has a path a node but the failover 759s --candidate has no path to that node 759s and sub1.sub_receiver not in 759s (select p1.pa_client from 759s public.sl_path p1 759s left outer join public.sl_path p2 on 759s (p2.pa_client=p1.pa_client 759s and p2.pa_server=sub1.sub_receiver) 759s where p2.pa_client is null 759s and p1.pa_server=set_origin 759s and p1.pa_client<>sub1.sub_receiver 759s ) 759s and sub1.sub_provider=set_origin 759s --exclude any subscribers that are not 759s --direct subscribers of all sets on the 759s --origin 759s and sub1.sub_receiver not in 759s (select direct_recv.sub_receiver 759s from 759s 759s (--all direct receivers of the first set 759s select subs2.sub_receiver 759s from public.sl_subscribe subs2 759s where subs2.sub_provider=set1.set_origin 759s and subs2.sub_set=set1.set_id) as 759s direct_recv 759s inner join 759s (--all other sets from the origin 759s select set_id from public.sl_set set2 759s where set2.set_origin=set1.set_origin 759s and set2.set_id<>sub1.sub_set) 759s as othersets on(true) 759s left outer join public.sl_subscribe subs3 759s on(subs3.sub_set=othersets.set_id 759s and subs3.sub_forward=true 759s and subs3.sub_provider=set1.set_origin 759s and direct_recv.sub_receiver=subs3.sub_receiver) 759s where subs3.sub_receiver is null 759s ); 759s CREATE VIEW 759s create sequence public.sl_local_node_id 759s MINVALUE -1; 759s CREATE SEQUENCE 759s SELECT setval('public.sl_local_node_id', -1); 759s setval 759s -------- 759s -1 759s (1 row) 759s 759s comment on sequence public.sl_local_node_id is 'The local node ID is initialized to -1, meaning that this node is not initialized yet.'; 759s COMMENT 759s create sequence public.sl_event_seq; 759s CREATE SEQUENCE 759s comment on sequence public.sl_event_seq is 'The sequence for numbering events originating from this node.'; 759s COMMENT 759s select setval('public.sl_event_seq', 5000000000); 759s setval 759s ------------ 759s 5000000000 759s (1 row) 759s 759s create sequence public.sl_action_seq; 759s CREATE SEQUENCE 759s comment on sequence public.sl_action_seq is 'The sequence to number statements in the transaction logs, so that the replication engines can figure out the "agreeable" order of statements.'; 759s COMMENT 759s create sequence public.sl_log_status 759s MINVALUE 0 MAXVALUE 3; 759s CREATE SEQUENCE 759s SELECT setval('public.sl_log_status', 0); 759s setval 759s -------- 759s 0 759s (1 row) 759s 759s comment on sequence public.sl_log_status is ' 759s Bit 0x01 determines the currently active log table 759s Bit 0x02 tells if the engine needs to read both logs 759s after switching until the old log is clean and truncated. 759s 759s Possible values: 759s 0 sl_log_1 active, sl_log_2 clean 759s 1 sl_log_2 active, sl_log_1 clean 759s 2 sl_log_1 active, sl_log_2 unknown - cleanup 759s 3 sl_log_2 active, sl_log_1 unknown - cleanup 759s 759s This is not yet in use. 759s '; 759s COMMENT 759s create table public.sl_config_lock ( 759s dummy integer 759s ); 759s CREATE TABLE 759s comment on table public.sl_config_lock is 'This table exists solely to prevent overlapping execution of configuration change procedures and the resulting possible deadlocks. 759s '; 759s COMMENT 759s comment on column public.sl_config_lock.dummy is 'No data ever goes in this table so the contents never matter. Indeed, this column does not really need to exist.'; 759s COMMENT 759s create table public.sl_event_lock ( 759s dummy integer 759s ); 759s CREATE TABLE 759s comment on table public.sl_event_lock is 'This table exists solely to prevent multiple connections from concurrently creating new events and perhaps getting them out of order.'; 759s COMMENT 759s comment on column public.sl_event_lock.dummy is 'No data ever goes in this table so the contents never matter. Indeed, this column does not really need to exist.'; 759s COMMENT 759s create table public.sl_archive_counter ( 759s ac_num bigint, 759s ac_timestamp timestamptz 759s ) without oids; 759s CREATE TABLE 759s comment on table public.sl_archive_counter is 'Table used to generate the log shipping archive number. 759s '; 759s COMMENT 759s comment on column public.sl_archive_counter.ac_num is 'Counter of SYNC ID used in log shipping as the archive number'; 759s COMMENT 759s comment on column public.sl_archive_counter.ac_timestamp is 'Time at which the archive log was generated on the subscriber'; 759s COMMENT 759s insert into public.sl_archive_counter (ac_num, ac_timestamp) 759s values (0, 'epoch'::timestamptz); 759s INSERT 0 1 759s create table public.sl_components ( 759s co_actor text not null primary key, 759s co_pid integer not null, 759s co_node integer not null, 759s co_connection_pid integer not null, 759s co_activity text, 759s co_starttime timestamptz not null, 759s co_event bigint, 759s co_eventtype text 759s ) without oids; 759s CREATE TABLE 759s comment on table public.sl_components is 'Table used to monitor what various slon/slonik components are doing'; 759s COMMENT 759s comment on column public.sl_components.co_actor is 'which component am I?'; 759s COMMENT 759s comment on column public.sl_components.co_pid is 'my process/thread PID on node where slon runs'; 759s COMMENT 759s comment on column public.sl_components.co_node is 'which node am I servicing?'; 759s COMMENT 759s comment on column public.sl_components.co_connection_pid is 'PID of database connection being used on database server'; 759s COMMENT 759s comment on column public.sl_components.co_activity is 'activity that I am up to'; 759s COMMENT 759s comment on column public.sl_components.co_starttime is 'when did my activity begin? (timestamp reported as per slon process on server running slon)'; 759s COMMENT 759s comment on column public.sl_components.co_eventtype is 'what kind of event am I processing? (commonly n/a for event loop main threads)'; 759s COMMENT 759s comment on column public.sl_components.co_event is 'which event have I started processing?'; 759s COMMENT 759s CREATE OR replace function public.agg_text_sum(txt_before TEXT, txt_new TEXT) RETURNS TEXT AS 759s $BODY$ 759s DECLARE 759s c_delim text; 759s BEGIN 759s c_delim = ','; 759s IF (txt_before IS NULL or txt_before='') THEN 759s RETURN txt_new; 759s END IF; 759s RETURN txt_before || c_delim || txt_new; 759s END; 759s $BODY$ 759s LANGUAGE plpgsql; 759s CREATE FUNCTION 759s comment on function public.agg_text_sum(text,text) is 759s 'An accumulator function used by the slony string_agg function to 759s aggregate rows into a string'; 759s COMMENT 759s CREATE AGGREGATE public.string_agg(text) ( 759s SFUNC=public.agg_text_sum, 759s STYPE=text, 759s INITCOND='' 759s ); 759s CREATE AGGREGATE 759s grant usage on schema public to public; 759s GRANT 759s create or replace function public.createEvent (p_cluster_name name, p_event_type text) 759s returns bigint 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__createEvent' 759s language C 759s called on null input; 759s CREATE FUNCTION 759s comment on function public.createEvent (p_cluster_name name, p_event_type text) is 759s 'FUNCTION createEvent (cluster_name, ev_type [, ev_data [...]]) 759s 759s Create an sl_event entry'; 759s NOTICE: checked validity of cluster main namespace - OK! 759s COMMENT 759s create or replace function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text) 759s returns bigint 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__createEvent' 759s language C 759s called on null input; 759s CREATE FUNCTION 759s comment on function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text) is 759s 'FUNCTION createEvent (cluster_name, ev_type [, ev_data [...]]) 759s 759s Create an sl_event entry'; 759s COMMENT 759s create or replace function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text) 759s returns bigint 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__createEvent' 759s language C 759s called on null input; 759s CREATE FUNCTION 759s comment on function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text) is 759s 'FUNCTION createEvent (cluster_name, ev_type [, ev_data [...]]) 759s 759s Create an sl_event entry'; 759s COMMENT 759s create or replace function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text) 759s returns bigint 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__createEvent' 759s language C 759s called on null input; 759s CREATE FUNCTION 759s comment on function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text) is 759s 'FUNCTION createEvent (cluster_name, ev_type [, ev_data [...]]) 759s 759s Create an sl_event entry'; 759s COMMENT 759s create or replace function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text, ev_data4 text) 759s returns bigint 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__createEvent' 759s language C 759s called on null input; 759s CREATE FUNCTION 759s comment on function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text, ev_data4 text) is 759s 'FUNCTION createEvent (cluster_name, ev_type [, ev_data [...]]) 759s 759s Create an sl_event entry'; 759s COMMENT 759s create or replace function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text, ev_data4 text, ev_data5 text) 759s returns bigint 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__createEvent' 759s language C 759s called on null input; 759s CREATE FUNCTION 759s comment on function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text, ev_data4 text, ev_data5 text) is 759s 'FUNCTION createEvent (cluster_name, ev_type [, ev_data [...]]) 759s 759s Create an sl_event entry'; 759s COMMENT 759s create or replace function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text, ev_data4 text, ev_data5 text, ev_data6 text) 759s returns bigint 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__createEvent' 759s language C 759s called on null input; 759s CREATE FUNCTION 759s comment on function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text, ev_data4 text, ev_data5 text, ev_data6 text) is 759s 'FUNCTION createEvent (cluster_name, ev_type [, ev_data [...]]) 759s 759s Create an sl_event entry'; 759s COMMENT 759s create or replace function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text, ev_data4 text, ev_data5 text, ev_data6 text, ev_data7 text) 759s returns bigint 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__createEvent' 759s language C 759s called on null input; 759s CREATE FUNCTION 759s comment on function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text, ev_data4 text, ev_data5 text, ev_data6 text, ev_data7 text) is 759s 'FUNCTION createEvent (cluster_name, ev_type [, ev_data [...]]) 759s 759s Create an sl_event entry'; 759s COMMENT 759s create or replace function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text, ev_data4 text, ev_data5 text, ev_data6 text, ev_data7 text, ev_data8 text) 759s returns bigint 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__createEvent' 759s language C 759s called on null input; 759s CREATE FUNCTION 759s comment on function public.createEvent (p_cluster_name name, p_event_type text, ev_data1 text, ev_data2 text, ev_data3 text, ev_data4 text, ev_data5 text, ev_data6 text, ev_data7 text, ev_data8 text) is 759s 'FUNCTION createEvent (cluster_name, ev_type [, ev_data [...]]) 759s 759s Create an sl_event entry'; 759s COMMENT 759s create or replace function public.denyAccess () 759s returns trigger 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__denyAccess' 759s language C 759s security definer; 759s CREATE FUNCTION 759s comment on function public.denyAccess () is 759s 'Trigger function to prevent modifications to a table on a subscriber'; 759s COMMENT 759s grant execute on function public.denyAccess () to public; 759s GRANT 759s create or replace function public.lockedSet () 759s returns trigger 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__lockedSet' 759s language C; 759s CREATE FUNCTION 759s comment on function public.lockedSet () is 759s 'Trigger function to prevent modifications to a table before and after a moveSet()'; 759s COMMENT 759s create or replace function public.getLocalNodeId (p_cluster name) returns int4 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__getLocalNodeId' 759s language C 759s security definer; 759s CREATE FUNCTION 759s grant execute on function public.getLocalNodeId (p_cluster name) to public; 759s GRANT 759s comment on function public.getLocalNodeId (p_cluster name) is 759s 'Returns the node ID of the node being serviced on the local database'; 759s COMMENT 759s create or replace function public.getModuleVersion () returns text 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__getModuleVersion' 759s language C 759s security definer; 759s CREATE FUNCTION 759s grant execute on function public.getModuleVersion () to public; 759s GRANT 759s comment on function public.getModuleVersion () is 759s 'Returns the compiled-in version number of the Slony-I shared object'; 759s COMMENT 759s create or replace function public.resetSession() returns text 759s as '$libdir/slony1_funcs.2.2.11','_Slony_I_2_2_11__resetSession' 759s language C; 759s CREATE FUNCTION 759s create or replace function public.logApply () returns trigger 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__logApply' 759s language C 759s security definer; 759s CREATE FUNCTION 759s create or replace function public.logApplySetCacheSize (p_size int4) 759s returns int4 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__logApplySetCacheSize' 759s language C; 759s CREATE FUNCTION 759s create or replace function public.logApplySaveStats (p_cluster name, p_origin int4, p_duration interval) 759s returns int4 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__logApplySaveStats' 759s language C; 759s CREATE FUNCTION 759s create or replace function public.checkmoduleversion () returns text as $$ 759s declare 759s moduleversion text; 759s begin 759s select into moduleversion public.getModuleVersion(); 759s if moduleversion <> '2.2.11' then 759s raise exception 'Slonik version: 2.2.11 != Slony-I version in PG build %', 759s moduleversion; 759s end if; 759s return null; 759s end;$$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.checkmoduleversion () is 759s 'Inline test function that verifies that slonik request for STORE 759s NODE/INIT CLUSTER is being run against a conformant set of 759s schema/functions.'; 759s COMMENT 759s select public.checkmoduleversion(); 759s checkmoduleversion 759s -------------------- 759s 759s (1 row) 759s 759s create or replace function public.decode_tgargs(bytea) returns text[] as 759s '$libdir/slony1_funcs.2.2.11','_Slony_I_2_2_11__slon_decode_tgargs' language C security definer; 759s CREATE FUNCTION 759s comment on function public.decode_tgargs(bytea) is 759s 'Translates the contents of pg_trigger.tgargs to an array of text arguments'; 759s COMMENT 759s grant execute on function public.decode_tgargs(bytea) to public; 759s GRANT 759s create or replace function public.check_namespace_validity () returns boolean as $$ 759s declare 759s c_cluster text; 759s begin 759s c_cluster := 'main'; 759s if c_cluster !~ E'^[[:alpha:]_][[:alnum:]_\$]{0,62}$' then 759s raise exception 'Cluster name % is not a valid SQL symbol!', c_cluster; 759s else 759s raise notice 'checked validity of cluster % namespace - OK!', c_cluster; 759s end if; 759s return 't'; 759s end 759s $$ language plpgsql; 759s CREATE FUNCTION 759s select public.check_namespace_validity(); 759s check_namespace_validity 759s -------------------------- 759s t 759s (1 row) 759s 759s drop function public.check_namespace_validity(); 759s DROP FUNCTION 759s create or replace function public.logTrigger () returns trigger 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__logTrigger' 759s language C 759s security definer; 759s CREATE FUNCTION 759s comment on function public.logTrigger () is 759s 'This is the trigger that is executed on the origin node that causes 759s updates to be recorded in sl_log_1/sl_log_2.'; 759s COMMENT 759s grant execute on function public.logTrigger () to public; 759s GRANT 759s create or replace function public.terminateNodeConnections (p_failed_node int4) returns int4 759s as $$ 759s declare 759s v_row record; 759s begin 759s for v_row in select nl_nodeid, nl_conncnt, 759s nl_backendpid from public.sl_nodelock 759s where nl_nodeid = p_failed_node for update 759s loop 759s perform public.killBackend(v_row.nl_backendpid, 'TERM'); 759s delete from public.sl_nodelock 759s where nl_nodeid = v_row.nl_nodeid 759s and nl_conncnt = v_row.nl_conncnt; 759s end loop; 759s 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.terminateNodeConnections (p_failed_node int4) is 759s 'terminates all backends that have registered to be from the given node'; 759s COMMENT 759s create or replace function public.killBackend (p_pid int4, p_signame text) returns int4 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__killBackend' 759s language C; 759s CREATE FUNCTION 759s comment on function public.killBackend(p_pid int4, p_signame text) is 759s 'Send a signal to a postgres process. Requires superuser rights'; 759s COMMENT 759s create or replace function public.seqtrack (p_seqid int4, p_seqval int8) returns int8 759s as '$libdir/slony1_funcs.2.2.11', '_Slony_I_2_2_11__seqtrack' 759s strict language C; 759s CREATE FUNCTION 759s comment on function public.seqtrack(p_seqid int4, p_seqval int8) is 759s 'Returns NULL if seqval has not changed since the last call for seqid'; 759s COMMENT 759s create or replace function public.slon_quote_brute(p_tab_fqname text) returns text 759s as $$ 759s declare 759s v_fqname text default ''; 759s begin 759s v_fqname := '"' || replace(p_tab_fqname,'"','""') || '"'; 759s return v_fqname; 759s end; 759s $$ language plpgsql immutable; 759s CREATE FUNCTION 759s comment on function public.slon_quote_brute(p_tab_fqname text) is 759s 'Brutally quote the given text'; 759s COMMENT 759s create or replace function public.slon_quote_input(p_tab_fqname text) returns text as $$ 759s declare 759s v_nsp_name text; 759s v_tab_name text; 759s v_i integer; 759s v_l integer; 759s v_pq2 integer; 759s begin 759s v_l := length(p_tab_fqname); 759s 759s -- Let us search for the dot 759s if p_tab_fqname like '"%' then 759s -- if the first part of the ident starts with a double quote, search 759s -- for the closing double quote, skipping over double double quotes. 759s v_i := 2; 759s while v_i <= v_l loop 759s if substr(p_tab_fqname, v_i, 1) != '"' then 759s v_i := v_i + 1; 759s else 759s v_i := v_i + 1; 759s if substr(p_tab_fqname, v_i, 1) != '"' then 759s exit; 759s end if; 759s v_i := v_i + 1; 759s end if; 759s end loop; 759s else 759s -- first part of ident is not quoted, search for the dot directly 759s v_i := 1; 759s while v_i <= v_l loop 759s if substr(p_tab_fqname, v_i, 1) = '.' then 759s exit; 759s end if; 759s v_i := v_i + 1; 759s end loop; 759s end if; 759s 759s -- v_i now points at the dot or behind the string. 759s 759s if substr(p_tab_fqname, v_i, 1) = '.' then 759s -- There is a dot now, so split the ident into its namespace 759s -- and objname parts and make sure each is quoted 759s v_nsp_name := substr(p_tab_fqname, 1, v_i - 1); 759s v_tab_name := substr(p_tab_fqname, v_i + 1); 759s if v_nsp_name not like '"%' then 759s v_nsp_name := '"' || replace(v_nsp_name, '"', '""') || 759s '"'; 759s end if; 759s if v_tab_name not like '"%' then 759s v_tab_name := '"' || replace(v_tab_name, '"', '""') || 759s '"'; 759s end if; 759s 759s return v_nsp_name || '.' || v_tab_name; 759s else 759s -- No dot ... must be just an ident without schema 759s if p_tab_fqname like '"%' then 759s return p_tab_fqname; 759s else 759s return '"' || replace(p_tab_fqname, '"', '""') || '"'; 759s end if; 759s end if; 759s 759s end;$$ language plpgsql immutable; 759s CREATE FUNCTION 759s comment on function public.slon_quote_input(p_text text) is 759s 'quote all words that aren''t quoted yet'; 759s COMMENT 759s create or replace function public.slonyVersionMajor() 759s returns int4 759s as $$ 759s begin 759s return 2; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.slonyVersionMajor () is 759s 'Returns the major version number of the slony schema'; 759s COMMENT 759s create or replace function public.slonyVersionMinor() 759s returns int4 759s as $$ 759s begin 759s return 2; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.slonyVersionMinor () is 759s 'Returns the minor version number of the slony schema'; 759s COMMENT 759s create or replace function public.slonyVersionPatchlevel() 759s returns int4 759s as $$ 759s begin 759s return 11; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.slonyVersionPatchlevel () is 759s 'Returns the version patch level of the slony schema'; 759s COMMENT 759s create or replace function public.slonyVersion() 759s returns text 759s as $$ 759s begin 759s return public.slonyVersionMajor()::text || '.' || 759s public.slonyVersionMinor()::text || '.' || 759s public.slonyVersionPatchlevel()::text ; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.slonyVersion() is 759s 'Returns the version number of the slony schema'; 759s COMMENT 759s create or replace function public.registry_set_int4(p_key text, p_value int4) 759s returns int4 as $$ 759s BEGIN 759s if p_value is null then 759s delete from public.sl_registry 759s where reg_key = p_key; 759s else 759s lock table public.sl_registry; 759s update public.sl_registry 759s set reg_int4 = p_value 759s where reg_key = p_key; 759s if not found then 759s insert into public.sl_registry (reg_key, reg_int4) 759s values (p_key, p_value); 759s end if; 759s end if; 759s return p_value; 759s END; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.registry_set_int4(p_key text, p_value int4) is 759s 'registry_set_int4(key, value) 759s 759s Set or delete a registry value'; 759s COMMENT 759s create or replace function public.registry_get_int4(p_key text, p_default int4) 759s returns int4 as $$ 759s DECLARE 759s v_value int4; 759s BEGIN 759s select reg_int4 into v_value from public.sl_registry 759s where reg_key = p_key; 759s if not found then 759s v_value = p_default; 759s if p_default notnull then 759s perform public.registry_set_int4(p_key, p_default); 759s end if; 759s else 759s if v_value is null then 759s raise exception 'Slony-I: registry key % is not an int4 value', 759s p_key; 759s end if; 759s end if; 759s return v_value; 759s END; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.registry_get_int4(p_key text, p_default int4) is 759s 'registry_get_int4(key, value) 759s 759s Get a registry value. If not present, set and return the default.'; 759s COMMENT 759s create or replace function public.registry_set_text(p_key text, p_value text) 759s returns text as $$ 759s BEGIN 759s if p_value is null then 759s delete from public.sl_registry 759s where reg_key = p_key; 759s else 759s lock table public.sl_registry; 759s update public.sl_registry 759s set reg_text = p_value 759s where reg_key = p_key; 759s if not found then 759s insert into public.sl_registry (reg_key, reg_text) 759s values (p_key, p_value); 759s end if; 759s end if; 759s return p_value; 759s END; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.registry_set_text(text, text) is 759s 'registry_set_text(key, value) 759s 759s Set or delete a registry value'; 759s COMMENT 759s create or replace function public.registry_get_text(p_key text, p_default text) 759s returns text as $$ 759s DECLARE 759s v_value text; 759s BEGIN 759s select reg_text into v_value from public.sl_registry 759s where reg_key = p_key; 759s if not found then 759s v_value = p_default; 759s if p_default notnull then 759s perform public.registry_set_text(p_key, p_default); 759s end if; 759s else 759s if v_value is null then 759s raise exception 'Slony-I: registry key % is not a text value', 759s p_key; 759s end if; 759s end if; 759s return v_value; 759s END; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.registry_get_text(p_key text, p_default text) is 759s 'registry_get_text(key, value) 759s 759s Get a registry value. If not present, set and return the default.'; 759s COMMENT 759s create or replace function public.registry_set_timestamp(p_key text, p_value timestamptz) 759s returns timestamp as $$ 759s BEGIN 759s if p_value is null then 759s delete from public.sl_registry 759s where reg_key = p_key; 759s else 759s lock table public.sl_registry; 759s update public.sl_registry 759s set reg_timestamp = p_value 759s where reg_key = p_key; 759s if not found then 759s insert into public.sl_registry (reg_key, reg_timestamp) 759s values (p_key, p_value); 759s end if; 759s end if; 759s return p_value; 759s END; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.registry_set_timestamp(p_key text, p_value timestamptz) is 759s 'registry_set_timestamp(key, value) 759s 759s Set or delete a registry value'; 759s COMMENT 759s create or replace function public.registry_get_timestamp(p_key text, p_default timestamptz) 759s returns timestamp as $$ 759s DECLARE 759s v_value timestamp; 759s BEGIN 759s select reg_timestamp into v_value from public.sl_registry 759s where reg_key = p_key; 759s if not found then 759s v_value = p_default; 759s if p_default notnull then 759s perform public.registry_set_timestamp(p_key, p_default); 759s end if; 759s else 759s if v_value is null then 759s raise exception 'Slony-I: registry key % is not an timestamp value', 759s p_key; 759s end if; 759s end if; 759s return v_value; 759s END; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.registry_get_timestamp(p_key text, p_default timestamptz) is 759s 'registry_get_timestamp(key, value) 759s 759s Get a registry value. If not present, set and return the default.'; 759s COMMENT 759s create or replace function public.cleanupNodelock () 759s returns int4 759s as $$ 759s declare 759s v_row record; 759s begin 759s for v_row in select nl_nodeid, nl_conncnt, nl_backendpid 759s from public.sl_nodelock 759s for update 759s loop 759s if public.killBackend(v_row.nl_backendpid, 'NULL') < 0 then 759s raise notice 'Slony-I: cleanup stale sl_nodelock entry for pid=%', 759s v_row.nl_backendpid; 759s delete from public.sl_nodelock where 759s nl_nodeid = v_row.nl_nodeid and 759s nl_conncnt = v_row.nl_conncnt; 759s end if; 759s end loop; 759s 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.cleanupNodelock() is 759s 'Clean up stale entries when restarting slon'; 759s COMMENT 759s create or replace function public.registerNodeConnection (p_nodeid int4) 759s returns int4 759s as $$ 759s begin 759s insert into public.sl_nodelock 759s (nl_nodeid, nl_backendpid) 759s values 759s (p_nodeid, pg_backend_pid()); 759s 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.registerNodeConnection (p_nodeid int4) is 759s 'Register (uniquely) the node connection so that only one slon can service the node'; 759s COMMENT 759s create or replace function public.initializeLocalNode (p_local_node_id int4, p_comment text) 759s returns int4 759s as $$ 759s declare 759s v_old_node_id int4; 759s v_first_log_no int4; 759s v_event_seq int8; 759s begin 759s -- ---- 759s -- Make sure this node is uninitialized or got reset 759s -- ---- 759s select last_value::int4 into v_old_node_id from public.sl_local_node_id; 759s if v_old_node_id != -1 then 759s raise exception 'Slony-I: This node is already initialized'; 759s end if; 759s 759s -- ---- 759s -- Set sl_local_node_id to the requested value and add our 759s -- own system to sl_node. 759s -- ---- 759s perform setval('public.sl_local_node_id', p_local_node_id); 759s perform public.storeNode_int (p_local_node_id, p_comment); 759s 759s if (pg_catalog.current_setting('max_identifier_length')::integer - pg_catalog.length('public')) < 5 then 759s raise notice 'Slony-I: Cluster name length [%] versus system max_identifier_length [%] ', pg_catalog.length('public'), pg_catalog.current_setting('max_identifier_length'); 759s raise notice 'leaves narrow/no room for some Slony-I-generated objects (such as indexes).'; 759s raise notice 'You may run into problems later!'; 759s end if; 759s 759s -- 759s -- Put the apply trigger onto sl_log_1 and sl_log_2 759s -- 759s create trigger apply_trigger 759s before INSERT on public.sl_log_1 759s for each row execute procedure public.logApply('_main'); 759s alter table public.sl_log_1 759s enable replica trigger apply_trigger; 759s create trigger apply_trigger 759s before INSERT on public.sl_log_2 759s for each row execute procedure public.logApply('_main'); 759s alter table public.sl_log_2 759s enable replica trigger apply_trigger; 759s 759s return p_local_node_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.initializeLocalNode (p_local_node_id int4, p_comment text) is 759s 'no_id - Node ID # 759s no_comment - Human-oriented comment 759s 759s Initializes the new node, no_id'; 759s COMMENT 759s create or replace function public.storeNode (p_no_id int4, p_no_comment text) 759s returns bigint 759s as $$ 759s begin 759s perform public.storeNode_int (p_no_id, p_no_comment); 759s return public.createEvent('_main', 'STORE_NODE', 759s p_no_id::text, p_no_comment::text); 759s end; 759s $$ language plpgsql 759s called on null input; 759s CREATE FUNCTION 759s comment on function public.storeNode(p_no_id int4, p_no_comment text) is 759s 'no_id - Node ID # 759s no_comment - Human-oriented comment 759s 759s Generate the STORE_NODE event for node no_id'; 759s COMMENT 759s create or replace function public.storeNode_int (p_no_id int4, p_no_comment text) 759s returns int4 759s as $$ 759s declare 759s v_old_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check if the node exists 759s -- ---- 759s select * into v_old_row 759s from public.sl_node 759s where no_id = p_no_id 759s for update; 759s if found then 759s -- ---- 759s -- Node exists, update the existing row. 759s -- ---- 759s update public.sl_node 759s set no_comment = p_no_comment 759s where no_id = p_no_id; 759s else 759s -- ---- 759s -- New node, insert the sl_node row 759s -- ---- 759s insert into public.sl_node 759s (no_id, no_active, no_comment,no_failed) values 759s (p_no_id, 'f', p_no_comment,false); 759s end if; 759s 759s return p_no_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.storeNode_int(p_no_id int4, p_no_comment text) is 759s 'no_id - Node ID # 759s no_comment - Human-oriented comment 759s 759s Internal function to process the STORE_NODE event for node no_id'; 759s COMMENT 759s create or replace function public.enableNode (p_no_id int4) 759s returns bigint 759s as $$ 759s declare 759s v_local_node_id int4; 759s v_node_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check that we are the node to activate and that we are 759s -- currently disabled. 759s -- ---- 759s v_local_node_id := public.getLocalNodeId('_main'); 759s select * into v_node_row 759s from public.sl_node 759s where no_id = p_no_id 759s for update; 759s if not found then 759s raise exception 'Slony-I: node % not found', p_no_id; 759s end if; 759s if v_node_row.no_active then 759s raise exception 'Slony-I: node % is already active', p_no_id; 759s end if; 759s 759s -- ---- 759s -- Activate this node and generate the ENABLE_NODE event 759s -- ---- 759s perform public.enableNode_int (p_no_id); 759s return public.createEvent('_main', 'ENABLE_NODE', 759s p_no_id::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.enableNode(p_no_id int4) is 759s 'no_id - Node ID # 759s 759s Generate the ENABLE_NODE event for node no_id'; 759s COMMENT 759s create or replace function public.enableNode_int (p_no_id int4) 759s returns int4 759s as $$ 759s declare 759s v_local_node_id int4; 759s v_node_row record; 759s v_sub_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check that the node is inactive 759s -- ---- 759s select * into v_node_row 759s from public.sl_node 759s where no_id = p_no_id 759s for update; 759s if not found then 759s raise exception 'Slony-I: node % not found', p_no_id; 759s end if; 759s if v_node_row.no_active then 759s return p_no_id; 759s end if; 759s 759s -- ---- 759s -- Activate the node and generate sl_confirm status rows for it. 759s -- ---- 759s update public.sl_node 759s set no_active = 't' 759s where no_id = p_no_id; 759s insert into public.sl_confirm 759s (con_origin, con_received, con_seqno) 759s select no_id, p_no_id, 0 from public.sl_node 759s where no_id != p_no_id 759s and no_active; 759s insert into public.sl_confirm 759s (con_origin, con_received, con_seqno) 759s select p_no_id, no_id, 0 from public.sl_node 759s where no_id != p_no_id 759s and no_active; 759s 759s -- ---- 759s -- Generate ENABLE_SUBSCRIPTION events for all sets that 759s -- origin here and are subscribed by the just enabled node. 759s -- ---- 759s v_local_node_id := public.getLocalNodeId('_main'); 759s for v_sub_row in select SUB.sub_set, SUB.sub_provider from 759s public.sl_set S, 759s public.sl_subscribe SUB 759s where S.set_origin = v_local_node_id 759s and S.set_id = SUB.sub_set 759s and SUB.sub_receiver = p_no_id 759s for update of S 759s loop 759s perform public.enableSubscription (v_sub_row.sub_set, 759s v_sub_row.sub_provider, p_no_id); 759s end loop; 759s 759s return p_no_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.enableNode_int(p_no_id int4) is 759s 'no_id - Node ID # 759s 759s Internal function to process the ENABLE_NODE event for node no_id'; 759s COMMENT 759s create or replace function public.disableNode (p_no_id int4) 759s returns bigint 759s as $$ 759s begin 759s -- **** TODO **** 759s raise exception 'Slony-I: disableNode() not implemented'; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.disableNode(p_no_id int4) is 759s 'generate DISABLE_NODE event for node no_id'; 759s COMMENT 759s create or replace function public.disableNode_int (p_no_id int4) 759s returns int4 759s as $$ 759s begin 759s -- **** TODO **** 759s raise exception 'Slony-I: disableNode_int() not implemented'; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.disableNode(p_no_id int4) is 759s 'process DISABLE_NODE event for node no_id 759s 759s NOTE: This is not yet implemented!'; 759s COMMENT 759s create or replace function public.dropNode (p_no_ids int4[]) 759s returns bigint 759s as $$ 759s declare 759s v_node_row record; 759s v_idx integer; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check that this got called on a different node 759s -- ---- 759s if public.getLocalNodeId('_main') = ANY (p_no_ids) then 759s raise exception 'Slony-I: DROP_NODE cannot initiate on the dropped node'; 759s end if; 759s 759s -- 759s -- if any of the deleted nodes are receivers we drop the sl_subscribe line 759s -- 759s delete from public.sl_subscribe where sub_receiver = ANY (p_no_ids); 759s 759s v_idx:=1; 759s LOOP 759s EXIT WHEN v_idx>array_upper(p_no_ids,1) ; 759s select * into v_node_row from public.sl_node 759s where no_id = p_no_ids[v_idx] 759s for update; 759s if not found then 759s raise exception 'Slony-I: unknown node ID % %', p_no_ids[v_idx],v_idx; 759s end if; 759s -- ---- 759s -- Make sure we do not break other nodes subscriptions with this 759s -- ---- 759s if exists (select true from public.sl_subscribe 759s where sub_provider = p_no_ids[v_idx]) 759s then 759s raise exception 'Slony-I: Node % is still configured as a data provider', 759s p_no_ids[v_idx]; 759s end if; 759s 759s -- ---- 759s -- Make sure no set originates there any more 759s -- ---- 759s if exists (select true from public.sl_set 759s where set_origin = p_no_ids[v_idx]) 759s then 759s raise exception 'Slony-I: Node % is still origin of one or more sets', 759s p_no_ids[v_idx]; 759s end if; 759s 759s -- ---- 759s -- Call the internal drop functionality and generate the event 759s -- ---- 759s perform public.dropNode_int(p_no_ids[v_idx]); 759s v_idx:=v_idx+1; 759s END LOOP; 759s return public.createEvent('_main', 'DROP_NODE', 759s array_to_string(p_no_ids,',')); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.dropNode(p_no_ids int4[]) is 759s 'generate DROP_NODE event to drop node node_id from replication'; 759s COMMENT 759s create or replace function public.dropNode_int (p_no_id int4) 759s returns int4 759s as $$ 759s declare 759s v_tab_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- If the dropped node is a remote node, clean the configuration 759s -- from all traces for it. 759s -- ---- 759s if p_no_id <> public.getLocalNodeId('_main') then 759s delete from public.sl_subscribe 759s where sub_receiver = p_no_id; 759s delete from public.sl_listen 759s where li_origin = p_no_id 759s or li_provider = p_no_id 759s or li_receiver = p_no_id; 759s delete from public.sl_path 759s where pa_server = p_no_id 759s or pa_client = p_no_id; 759s delete from public.sl_confirm 759s where con_origin = p_no_id 759s or con_received = p_no_id; 759s delete from public.sl_event 759s where ev_origin = p_no_id; 759s delete from public.sl_node 759s where no_id = p_no_id; 759s 759s return p_no_id; 759s end if; 759s 759s -- ---- 759s -- This is us ... deactivate the node for now, the daemon 759s -- will call uninstallNode() in a separate transaction. 759s -- ---- 759s update public.sl_node 759s set no_active = false 759s where no_id = p_no_id; 759s 759s -- Rewrite sl_listen table 759s perform public.RebuildListenEntries(); 759s 759s return p_no_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.dropNode_int(p_no_id int4) is 759s 'internal function to process DROP_NODE event to drop node node_id from replication'; 759s COMMENT 759s create or replace function public.preFailover(p_failed_node int4,p_is_candidate boolean) 759s returns int4 759s as $$ 759s declare 759s v_row record; 759s v_row2 record; 759s v_n int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- All consistency checks first 759s 759s if p_is_candidate then 759s -- ---- 759s -- Check all sets originating on the failed node 759s -- ---- 759s for v_row in select set_id 759s from public.sl_set 759s where set_origin = p_failed_node 759s loop 759s -- ---- 759s -- Check that the backup node is subscribed to all sets 759s -- that originate on the failed node 759s -- ---- 759s select into v_row2 sub_forward, sub_active 759s from public.sl_subscribe 759s where sub_set = v_row.set_id 759s and sub_receiver = public.getLocalNodeId('_main'); 759s if not found then 759s raise exception 'Slony-I: cannot failover - node % is not subscribed to set %', 759s public.getLocalNodeId('_main'), v_row.set_id; 759s end if; 759s 759s -- ---- 759s -- Check that the subscription is active 759s -- ---- 759s if not v_row2.sub_active then 759s raise exception 'Slony-I: cannot failover - subscription for set % is not active', 759s v_row.set_id; 759s end if; 759s 759s -- ---- 759s -- If there are other subscribers, the backup node needs to 759s -- be a forwarder too. 759s -- ---- 759s select into v_n count(*) 759s from public.sl_subscribe 759s where sub_set = v_row.set_id 759s and sub_receiver <> public.getLocalNodeId('_main'); 759s if v_n > 0 and not v_row2.sub_forward then 759s raise exception 'Slony-I: cannot failover - node % is not a forwarder of set %', 759s public.getLocalNodeId('_main'), v_row.set_id; 759s end if; 759s end loop; 759s end if; 759s 759s -- ---- 759s -- Terminate all connections of the failed node the hard way 759s -- ---- 759s perform public.terminateNodeConnections(p_failed_node); 759s 759s update public.sl_path set pa_conninfo='' WHERE 759s pa_server=p_failed_node; 759s notify "_main_Restart"; 759s -- ---- 759s -- That is it - so far. 759s -- ---- 759s return p_failed_node; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.preFailover(p_failed_node int4,is_failover_candidate boolean) is 759s 'Prepare for a failover. This function is called on all candidate nodes. 759s It blanks the paths to the failed node 759s and then restart of all node daemons.'; 759s COMMENT 759s create or replace function public.failedNode(p_failed_node int4, p_backup_node int4,p_failed_nodes integer[]) 759s returns int4 759s as $$ 759s declare 759s v_row record; 759s v_row2 record; 759s v_failed boolean; 759s v_restart_required boolean; 759s begin 759s 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s v_restart_required:=false; 759s -- 759s -- any nodes other than the backup receiving 759s -- ANY subscription from a failed node 759s -- will now get that data from the backup node. 759s update public.sl_subscribe set 759s sub_provider=p_backup_node 759s where sub_provider=p_failed_node 759s and sub_receiver<>p_backup_node 759s and sub_receiver <> ALL (p_failed_nodes); 759s if found then 759s v_restart_required:=true; 759s end if; 759s -- 759s -- if this node is receiving a subscription from the backup node 759s -- with a failed node as the provider we need to fix this. 759s update public.sl_subscribe set 759s sub_provider=p_backup_node 759s from public.sl_set 759s where set_id = sub_set 759s and set_origin=p_failed_node 759s and sub_provider = ANY(p_failed_nodes) 759s and sub_receiver=public.getLocalNodeId('_main'); 759s 759s -- ---- 759s -- Terminate all connections of the failed node the hard way 759s -- ---- 759s perform public.terminateNodeConnections(p_failed_node); 759s 759s -- Clear out the paths for the failed node. 759s -- This ensures that *this* node won't be pulling data from 759s -- the failed node even if it *does* become accessible 759s 759s update public.sl_path set pa_conninfo='' WHERE 759s pa_server=p_failed_node 759s and pa_conninfo<>''; 759s 759s if found then 759s v_restart_required:=true; 759s end if; 759s 759s v_failed := exists (select 1 from public.sl_node 759s where no_failed=true and no_id=p_failed_node); 759s 759s if not v_failed then 759s 759s update public.sl_node set no_failed=true where no_id = ANY (p_failed_nodes) 759s and no_failed=false; 759s if found then 759s v_restart_required:=true; 759s end if; 759s end if; 759s 759s if v_restart_required then 759s -- Rewrite sl_listen table 759s perform public.RebuildListenEntries(); 759s 759s -- ---- 759s -- Make sure the node daemon will restart 759s -- ---- 759s notify "_main_Restart"; 759s end if; 759s 759s 759s -- ---- 759s -- That is it - so far. 759s -- ---- 759s return p_failed_node; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.failedNode(p_failed_node int4, p_backup_node int4,p_failed_nodes integer[]) is 759s 'Initiate failover from failed_node to backup_node. This function must be called on all nodes, 759s and then waited for the restart of all node daemons.'; 759s COMMENT 759s create or replace function public.failedNode2 (p_failed_node int4, p_backup_node int4, p_ev_seqno int8, p_failed_nodes integer[]) 759s returns bigint 759s as $$ 759s declare 759s v_row record; 759s v_new_event bigint; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s select * into v_row 759s from public.sl_event 759s where ev_origin = p_failed_node 759s and ev_seqno = p_ev_seqno; 759s if not found then 759s raise exception 'Slony-I: event %,% not found', 759s p_failed_node, p_ev_seqno; 759s end if; 759s 759s update public.sl_node set no_failed=true where no_id = ANY 759s (p_failed_nodes) and no_failed=false; 759s -- Rewrite sl_listen table 759s perform public.RebuildListenEntries(); 759s -- ---- 759s -- Make sure the node daemon will restart 759s -- ---- 759s raise notice 'calling restart node %',p_failed_node; 759s 759s notify "_main_Restart"; 759s 759s select public.createEvent('_main','FAILOVER_NODE', 759s p_failed_node::text,p_ev_seqno::text, 759s array_to_string(p_failed_nodes,',')) 759s into v_new_event; 759s 759s 759s return v_new_event; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.failedNode2 (p_failed_node int4, p_backup_node int4, p_ev_seqno int8,p_failed_nodes integer[] ) is 759s 'FUNCTION failedNode2 (failed_node, backup_node, set_id, ev_seqno, ev_seqfake,p_failed_nodes) 759s 759s On the node that has the highest sequence number of the failed node, 759s fake the FAILOVER_SET event.'; 759s COMMENT 759s create or replace function public.failedNode3 (p_failed_node int4, p_backup_node int4,p_seq_no bigint) 759s returns int4 759s as $$ 759s declare 759s 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s perform public.failoverSet_int(p_failed_node, 759s p_backup_node,p_seq_no); 759s 759s notify "_main_Restart"; 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s create or replace function public.failoverSet_int (p_failed_node int4, p_backup_node int4,p_last_seqno bigint) 759s returns int4 759s as $$ 759s declare 759s v_row record; 759s v_last_sync int8; 759s v_set int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s SELECT max(ev_seqno) into v_last_sync FROM public.sl_event where 759s ev_origin=p_failed_node; 759s if v_last_sync > p_last_seqno then 759s -- this node is ahead of the last sequence number from the 759s -- failed node that the backup node has. 759s -- this node must unsubscribe from all sets from the origin. 759s for v_set in select set_id from public.sl_set where 759s set_origin=p_failed_node 759s loop 759s raise warning 'Slony is dropping the subscription of set % found sync %s bigger than %s ' 759s , v_set, v_last_sync::text, p_last_seqno::text; 759s perform public.unsubscribeSet(v_set, 759s public.getLocalNodeId('_main'), 759s true); 759s end loop; 759s delete from public.sl_event where ev_origin=p_failed_node 759s and ev_seqno > p_last_seqno; 759s end if; 759s -- ---- 759s -- Change the origin of the set now to the backup node. 759s -- On the backup node this includes changing all the 759s -- trigger and protection stuff 759s for v_set in select set_id from public.sl_set where 759s set_origin=p_failed_node 759s loop 759s -- ---- 759s if p_backup_node = public.getLocalNodeId('_main') then 759s delete from public.sl_setsync 759s where ssy_setid = v_set; 759s delete from public.sl_subscribe 759s where sub_set = v_set 759s and sub_receiver = p_backup_node; 759s update public.sl_set 759s set set_origin = p_backup_node 759s where set_id = v_set; 759s update public.sl_subscribe 759s set sub_provider=p_backup_node 759s FROM public.sl_node receive_node 759s where sub_set = v_set 759s and sub_provider=p_failed_node 759s and sub_receiver=receive_node.no_id 759s and receive_node.no_failed=false; 759s 759s for v_row in select * from public.sl_table 759s where tab_set = v_set 759s order by tab_id 759s loop 759s perform public.alterTableConfigureTriggers(v_row.tab_id); 759s end loop; 759s else 759s raise notice 'deleting from sl_subscribe all rows with receiver %', 759s p_backup_node; 759s 759s delete from public.sl_subscribe 759s where sub_set = v_set 759s and sub_receiver = p_backup_node; 759s 759s update public.sl_subscribe 759s set sub_provider=p_backup_node 759s FROM public.sl_node receive_node 759s where sub_set = v_set 759s and sub_provider=p_failed_node 759s and sub_provider=p_failed_node 759s and sub_receiver=receive_node.no_id 759s and receive_node.no_failed=false; 759s update public.sl_set 759s set set_origin = p_backup_node 759s where set_id = v_set; 759s -- ---- 759s -- If we are a subscriber of the set ourself, change our 759s -- setsync status to reflect the new set origin. 759s -- ---- 759s if exists (select true from public.sl_subscribe 759s where sub_set = v_set 759s and sub_receiver = public.getLocalNodeId( 759s '_main')) 759s then 759s delete from public.sl_setsync 759s where ssy_setid = v_set; 759s 759s select coalesce(max(ev_seqno), 0) into v_last_sync 759s from public.sl_event 759s where ev_origin = p_backup_node 759s and ev_type = 'SYNC'; 759s if v_last_sync > 0 then 759s insert into public.sl_setsync 759s (ssy_setid, ssy_origin, ssy_seqno, 759s ssy_snapshot, ssy_action_list) 759s select v_set, p_backup_node, v_last_sync, 759s ev_snapshot, NULL 759s from public.sl_event 759s where ev_origin = p_backup_node 759s and ev_seqno = v_last_sync; 759s else 759s insert into public.sl_setsync 759s (ssy_setid, ssy_origin, ssy_seqno, 759s ssy_snapshot, ssy_action_list) 759s values (v_set, p_backup_node, '0', 759s '1:1:', NULL); 759s end if; 759s end if; 759s end if; 759s end loop; 759s 759s --If there are any subscriptions with 759s --the failed_node being the provider then 759s --we want to redirect those subscriptions 759s --to come from the backup node. 759s -- 759s -- The backup node should be a valid 759s -- provider for all subscriptions served 759s -- by the failed node. (otherwise it 759s -- wouldn't be a allowable backup node). 759s -- delete from public.sl_subscribe 759s -- where sub_receiver=p_backup_node; 759s 759s update public.sl_subscribe 759s set sub_provider=p_backup_node 759s from public.sl_node 759s where sub_provider=p_failed_node 759s and sl_node.no_id=sub_receiver 759s and sl_node.no_failed=false 759s and sub_receiver<>p_backup_node; 759s 759s update public.sl_subscribe 759s set sub_provider=(select set_origin from 759s public.sl_set where set_id= 759s sub_set) 759s where sub_provider=p_failed_node 759s and sub_receiver=p_backup_node; 759s 759s update public.sl_node 759s set no_active=false WHERE 759s no_id=p_failed_node; 759s 759s -- Rewrite sl_listen table 759s perform public.RebuildListenEntries(); 759s 759s 759s return p_failed_node; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.failoverSet_int (p_failed_node int4, p_backup_node int4,p_seqno bigint) is 759s 'FUNCTION failoverSet_int (failed_node, backup_node, set_id, wait_seqno) 759s 759s Finish failover for one set.'; 759s COMMENT 759s create or replace function public.uninstallNode () 759s returns int4 759s as $$ 759s declare 759s v_tab_row record; 759s begin 759s raise notice 'Slony-I: Please drop schema "_main"'; 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.uninstallNode() is 759s 'Reset the whole database to standalone by removing the whole 759s replication system.'; 759s COMMENT 759s DROP FUNCTION IF EXISTS public.cloneNodePrepare(int4,int4,text); 759s DROP FUNCTION 759s create or replace function public.cloneNodePrepare (p_no_id int4, p_no_provider int4, p_no_comment text) 759s returns bigint 759s as $$ 759s begin 759s perform public.cloneNodePrepare_int (p_no_id, p_no_provider, p_no_comment); 759s return public.createEvent('_main', 'CLONE_NODE', 759s p_no_id::text, p_no_provider::text, 759s p_no_comment::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.cloneNodePrepare(p_no_id int4, p_no_provider int4, p_no_comment text) is 759s 'Prepare for cloning a node.'; 759s COMMENT 759s create or replace function public.cloneNodePrepare_int (p_no_id int4, p_no_provider int4, p_no_comment text) 759s returns int4 759s as $$ 759s declare 759s v_dummy int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s update public.sl_node set 759s no_active = np.no_active, 759s no_comment = np.no_comment, 759s no_failed = np.no_failed 759s from public.sl_node np 759s where np.no_id = p_no_provider 759s and sl_node.no_id = p_no_id; 759s if not found then 759s insert into public.sl_node 759s (no_id, no_active, no_comment,no_failed) 759s select p_no_id, no_active, p_no_comment, no_failed 759s from public.sl_node 759s where no_id = p_no_provider; 759s end if; 759s 759s insert into public.sl_path 759s (pa_server, pa_client, pa_conninfo, pa_connretry) 759s select pa_server, p_no_id, '', pa_connretry 759s from public.sl_path 759s where pa_client = p_no_provider 759s and (pa_server, p_no_id) not in (select pa_server, pa_client 759s from public.sl_path); 759s 759s insert into public.sl_path 759s (pa_server, pa_client, pa_conninfo, pa_connretry) 759s select p_no_id, pa_client, '', pa_connretry 759s from public.sl_path 759s where pa_server = p_no_provider 759s and (p_no_id, pa_client) not in (select pa_server, pa_client 759s from public.sl_path); 759s 759s insert into public.sl_subscribe 759s (sub_set, sub_provider, sub_receiver, sub_forward, sub_active) 759s select sub_set, sub_provider, p_no_id, sub_forward, sub_active 759s from public.sl_subscribe 759s where sub_receiver = p_no_provider; 759s 759s insert into public.sl_confirm 759s (con_origin, con_received, con_seqno, con_timestamp) 759s select con_origin, p_no_id, con_seqno, con_timestamp 759s from public.sl_confirm 759s where con_received = p_no_provider; 759s 759s perform public.RebuildListenEntries(); 759s 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.cloneNodePrepare_int(p_no_id int4, p_no_provider int4, p_no_comment text) is 759s 'Internal part of cloneNodePrepare().'; 759s NOTICE: function public.clonenodeprepare(int4,int4,text) does not exist, skipping 759s COMMENT 759s create or replace function public.cloneNodeFinish (p_no_id int4, p_no_provider int4) 759s returns int4 759s as $$ 759s declare 759s v_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s perform "pg_catalog".setval('public.sl_local_node_id', p_no_id); 759s perform public.resetSession(); 759s for v_row in select sub_set from public.sl_subscribe 759s where sub_receiver = p_no_id 759s loop 759s perform public.updateReloid(v_row.sub_set, p_no_id); 759s end loop; 759s 759s perform public.RebuildListenEntries(); 759s 759s delete from public.sl_confirm 759s where con_received = p_no_id; 759s insert into public.sl_confirm 759s (con_origin, con_received, con_seqno, con_timestamp) 759s select con_origin, p_no_id, con_seqno, con_timestamp 759s from public.sl_confirm 759s where con_received = p_no_provider; 759s insert into public.sl_confirm 759s (con_origin, con_received, con_seqno, con_timestamp) 759s select p_no_provider, p_no_id, 759s (select max(ev_seqno) from public.sl_event 759s where ev_origin = p_no_provider), current_timestamp; 759s 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.cloneNodeFinish(p_no_id int4, p_no_provider int4) is 759s 'Internal part of cloneNodePrepare().'; 759s COMMENT 759s create or replace function public.storePath (p_pa_server int4, p_pa_client int4, p_pa_conninfo text, p_pa_connretry int4) 759s returns bigint 759s as $$ 759s begin 759s perform public.storePath_int(p_pa_server, p_pa_client, 759s p_pa_conninfo, p_pa_connretry); 759s return public.createEvent('_main', 'STORE_PATH', 759s p_pa_server::text, p_pa_client::text, 759s p_pa_conninfo::text, p_pa_connretry::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.storePath (p_pa_server int4, p_pa_client int4, p_pa_conninfo text, p_pa_connretry int4) is 759s 'FUNCTION storePath (pa_server, pa_client, pa_conninfo, pa_connretry) 759s 759s Generate the STORE_PATH event indicating that node pa_client can 759s access node pa_server using DSN pa_conninfo'; 759s COMMENT 759s create or replace function public.storePath_int (p_pa_server int4, p_pa_client int4, p_pa_conninfo text, p_pa_connretry int4) 759s returns int4 759s as $$ 759s declare 759s v_dummy int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check if the path already exists 759s -- ---- 759s select 1 into v_dummy 759s from public.sl_path 759s where pa_server = p_pa_server 759s and pa_client = p_pa_client 759s for update; 759s if found then 759s -- ---- 759s -- Path exists, update pa_conninfo 759s -- ---- 759s update public.sl_path 759s set pa_conninfo = p_pa_conninfo, 759s pa_connretry = p_pa_connretry 759s where pa_server = p_pa_server 759s and pa_client = p_pa_client; 759s else 759s -- ---- 759s -- New path 759s -- 759s -- In case we receive STORE_PATH events before we know 759s -- about the nodes involved in this, we generate those nodes 759s -- as pending. 759s -- ---- 759s if not exists (select 1 from public.sl_node 759s where no_id = p_pa_server) then 759s perform public.storeNode_int (p_pa_server, ''); 759s end if; 759s if not exists (select 1 from public.sl_node 759s where no_id = p_pa_client) then 759s perform public.storeNode_int (p_pa_client, ''); 759s end if; 759s insert into public.sl_path 759s (pa_server, pa_client, pa_conninfo, pa_connretry) values 759s (p_pa_server, p_pa_client, p_pa_conninfo, p_pa_connretry); 759s end if; 759s 759s -- Rewrite sl_listen table 759s perform public.RebuildListenEntries(); 759s 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.storePath_int (p_pa_server int4, p_pa_client int4, p_pa_conninfo text, p_pa_connretry int4) is 759s 'FUNCTION storePath (pa_server, pa_client, pa_conninfo, pa_connretry) 759s 759s Process the STORE_PATH event indicating that node pa_client can 759s access node pa_server using DSN pa_conninfo'; 759s COMMENT 759s create or replace function public.dropPath (p_pa_server int4, p_pa_client int4) 759s returns bigint 759s as $$ 759s declare 759s v_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- There should be no existing subscriptions. Auto unsubscribing 759s -- is considered too dangerous. 759s -- ---- 759s for v_row in select sub_set, sub_provider, sub_receiver 759s from public.sl_subscribe 759s where sub_provider = p_pa_server 759s and sub_receiver = p_pa_client 759s loop 759s raise exception 759s 'Slony-I: Path cannot be dropped, subscription of set % needs it', 759s v_row.sub_set; 759s end loop; 759s 759s -- ---- 759s -- Drop all sl_listen entries that depend on this path 759s -- ---- 759s for v_row in select li_origin, li_provider, li_receiver 759s from public.sl_listen 759s where li_provider = p_pa_server 759s and li_receiver = p_pa_client 759s loop 759s perform public.dropListen( 759s v_row.li_origin, v_row.li_provider, v_row.li_receiver); 759s end loop; 759s 759s -- ---- 759s -- Now drop the path and create the event 759s -- ---- 759s perform public.dropPath_int(p_pa_server, p_pa_client); 759s 759s -- Rewrite sl_listen table 759s perform public.RebuildListenEntries(); 759s 759s return public.createEvent ('_main', 'DROP_PATH', 759s p_pa_server::text, p_pa_client::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.dropPath (p_pa_server int4, p_pa_client int4) is 759s 'Generate DROP_PATH event to drop path from pa_server to pa_client'; 759s COMMENT 759s create or replace function public.dropPath_int (p_pa_server int4, p_pa_client int4) 759s returns int4 759s as $$ 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Remove any dangling sl_listen entries with the server 759s -- as provider and the client as receiver. This must have 759s -- been cleared out before, but obviously was not. 759s -- ---- 759s delete from public.sl_listen 759s where li_provider = p_pa_server 759s and li_receiver = p_pa_client; 759s 759s delete from public.sl_path 759s where pa_server = p_pa_server 759s and pa_client = p_pa_client; 759s 759s if found then 759s -- Rewrite sl_listen table 759s perform public.RebuildListenEntries(); 759s 759s return 1; 759s else 759s -- Rewrite sl_listen table 759s perform public.RebuildListenEntries(); 759s 759s return 0; 759s end if; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.dropPath_int (p_pa_server int4, p_pa_client int4) is 759s 'Process DROP_PATH event to drop path from pa_server to pa_client'; 759s COMMENT 759s create or replace function public.storeListen (p_origin int4, p_provider int4, p_receiver int4) 759s returns bigint 759s as $$ 759s begin 759s perform public.storeListen_int (p_origin, p_provider, p_receiver); 759s return public.createEvent ('_main', 'STORE_LISTEN', 759s p_origin::text, p_provider::text, p_receiver::text); 759s end; 759s $$ language plpgsql 759s called on null input; 759s CREATE FUNCTION 759s comment on function public.storeListen(p_origin int4, p_provider int4, p_receiver int4) is 759s 'FUNCTION storeListen (li_origin, li_provider, li_receiver) 759s 759s generate STORE_LISTEN event, indicating that receiver node li_receiver 759s listens to node li_provider in order to get messages coming from node 759s li_origin.'; 759s COMMENT 759s create or replace function public.storeListen_int (p_li_origin int4, p_li_provider int4, p_li_receiver int4) 759s returns int4 759s as $$ 759s declare 759s v_exists int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s select 1 into v_exists 759s from public.sl_listen 759s where li_origin = p_li_origin 759s and li_provider = p_li_provider 759s and li_receiver = p_li_receiver; 759s if not found then 759s -- ---- 759s -- In case we receive STORE_LISTEN events before we know 759s -- about the nodes involved in this, we generate those nodes 759s -- as pending. 759s -- ---- 759s if not exists (select 1 from public.sl_node 759s where no_id = p_li_origin) then 759s perform public.storeNode_int (p_li_origin, ''); 759s end if; 759s if not exists (select 1 from public.sl_node 759s where no_id = p_li_provider) then 759s perform public.storeNode_int (p_li_provider, ''); 759s end if; 759s if not exists (select 1 from public.sl_node 759s where no_id = p_li_receiver) then 759s perform public.storeNode_int (p_li_receiver, ''); 759s end if; 759s 759s insert into public.sl_listen 759s (li_origin, li_provider, li_receiver) values 759s (p_li_origin, p_li_provider, p_li_receiver); 759s end if; 759s 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.storeListen_int(p_li_origin int4, p_li_provider int4, p_li_receiver int4) is 759s 'FUNCTION storeListen_int (li_origin, li_provider, li_receiver) 759s 759s Process STORE_LISTEN event, indicating that receiver node li_receiver 759s listens to node li_provider in order to get messages coming from node 759s li_origin.'; 759s COMMENT 759s create or replace function public.dropListen (p_li_origin int4, p_li_provider int4, p_li_receiver int4) 759s returns bigint 759s as $$ 759s begin 759s perform public.dropListen_int(p_li_origin, 759s p_li_provider, p_li_receiver); 759s 759s return public.createEvent ('_main', 'DROP_LISTEN', 759s p_li_origin::text, p_li_provider::text, p_li_receiver::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.dropListen(p_li_origin int4, p_li_provider int4, p_li_receiver int4) is 759s 'dropListen (li_origin, li_provider, li_receiver) 759s 759s Generate the DROP_LISTEN event.'; 759s COMMENT 759s create or replace function public.dropListen_int (p_li_origin int4, p_li_provider int4, p_li_receiver int4) 759s returns int4 759s as $$ 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s delete from public.sl_listen 759s where li_origin = p_li_origin 759s and li_provider = p_li_provider 759s and li_receiver = p_li_receiver; 759s if found then 759s return 1; 759s else 759s return 0; 759s end if; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.dropListen_int(p_li_origin int4, p_li_provider int4, p_li_receiver int4) is 759s 'dropListen (li_origin, li_provider, li_receiver) 759s 759s Process the DROP_LISTEN event, deleting the sl_listen entry for 759s the indicated (origin,provider,receiver) combination.'; 759s COMMENT 759s create or replace function public.storeSet (p_set_id int4, p_set_comment text) 759s returns bigint 759s as $$ 759s declare 759s v_local_node_id int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s v_local_node_id := public.getLocalNodeId('_main'); 759s 759s insert into public.sl_set 759s (set_id, set_origin, set_comment) values 759s (p_set_id, v_local_node_id, p_set_comment); 759s 759s return public.createEvent('_main', 'STORE_SET', 759s p_set_id::text, v_local_node_id::text, p_set_comment::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.storeSet(p_set_id int4, p_set_comment text) is 759s 'Generate STORE_SET event for set set_id with human readable comment set_comment'; 759s COMMENT 759s create or replace function public.storeSet_int (p_set_id int4, p_set_origin int4, p_set_comment text) 759s returns int4 759s as $$ 759s declare 759s v_dummy int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s select 1 into v_dummy 759s from public.sl_set 759s where set_id = p_set_id 759s for update; 759s if found then 759s update public.sl_set 759s set set_comment = p_set_comment 759s where set_id = p_set_id; 759s else 759s if not exists (select 1 from public.sl_node 759s where no_id = p_set_origin) then 759s perform public.storeNode_int (p_set_origin, ''); 759s end if; 759s insert into public.sl_set 759s (set_id, set_origin, set_comment) values 759s (p_set_id, p_set_origin, p_set_comment); 759s end if; 759s 759s -- Run addPartialLogIndices() to try to add indices to unused sl_log_? table 759s perform public.addPartialLogIndices(); 759s 759s return p_set_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.storeSet_int(p_set_id int4, p_set_origin int4, p_set_comment text) is 759s 'storeSet_int (set_id, set_origin, set_comment) 759s 759s Process the STORE_SET event, indicating the new set with given ID, 759s origin node, and human readable comment.'; 759s COMMENT 759s create or replace function public.lockSet (p_set_id int4) 759s returns int4 759s as $$ 759s declare 759s v_local_node_id int4; 759s v_set_row record; 759s v_tab_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check that the set exists and that we are the origin 759s -- and that it is not already locked. 759s -- ---- 759s v_local_node_id := public.getLocalNodeId('_main'); 759s select * into v_set_row from public.sl_set 759s where set_id = p_set_id 759s for update; 759s if not found then 759s raise exception 'Slony-I: set % not found', p_set_id; 759s end if; 759s if v_set_row.set_origin <> v_local_node_id then 759s raise exception 'Slony-I: set % does not originate on local node', 759s p_set_id; 759s end if; 759s if v_set_row.set_locked notnull then 759s raise exception 'Slony-I: set % is already locked', p_set_id; 759s end if; 759s 759s -- ---- 759s -- Place the lockedSet trigger on all tables in the set. 759s -- ---- 759s for v_tab_row in select T.tab_id, 759s public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) as tab_fqname 759s from public.sl_table T, 759s "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN 759s where T.tab_set = p_set_id 759s and T.tab_reloid = PGC.oid 759s and PGC.relnamespace = PGN.oid 759s order by tab_id 759s loop 759s execute 'create trigger "_main_lockedset" ' || 759s 'before insert or update or delete on ' || 759s v_tab_row.tab_fqname || ' for each row execute procedure 759s public.lockedSet (''_main'');'; 759s end loop; 759s 759s -- ---- 759s -- Remember our snapshots xmax as for the set locking 759s -- ---- 759s update public.sl_set 759s set set_locked = "pg_catalog".txid_snapshot_xmax("pg_catalog".txid_current_snapshot()) 759s where set_id = p_set_id; 759s 759s return p_set_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.lockSet(p_set_id int4) is 759s 'lockSet(set_id) 759s 759s Add a special trigger to all tables of a set that disables access to 759s it.'; 759s COMMENT 759s create or replace function public.unlockSet (p_set_id int4) 759s returns int4 759s as $$ 759s declare 759s v_local_node_id int4; 759s v_set_row record; 759s v_tab_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check that the set exists and that we are the origin 759s -- and that it is not already locked. 759s -- ---- 759s v_local_node_id := public.getLocalNodeId('_main'); 759s select * into v_set_row from public.sl_set 759s where set_id = p_set_id 759s for update; 759s if not found then 759s raise exception 'Slony-I: set % not found', p_set_id; 759s end if; 759s if v_set_row.set_origin <> v_local_node_id then 759s raise exception 'Slony-I: set % does not originate on local node', 759s p_set_id; 759s end if; 759s if v_set_row.set_locked isnull then 759s raise exception 'Slony-I: set % is not locked', p_set_id; 759s end if; 759s 759s -- ---- 759s -- Drop the lockedSet trigger from all tables in the set. 759s -- ---- 759s for v_tab_row in select T.tab_id, 759s public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) as tab_fqname 759s from public.sl_table T, 759s "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN 759s where T.tab_set = p_set_id 759s and T.tab_reloid = PGC.oid 759s and PGC.relnamespace = PGN.oid 759s order by tab_id 759s loop 759s execute 'drop trigger "_main_lockedset" ' || 759s 'on ' || v_tab_row.tab_fqname; 759s end loop; 759s 759s -- ---- 759s -- Clear out the set_locked field 759s -- ---- 759s update public.sl_set 759s set set_locked = NULL 759s where set_id = p_set_id; 759s 759s return p_set_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.unlockSet(p_set_id int4) is 759s 'Remove the special trigger from all tables of a set that disables access to it.'; 759s COMMENT 759s create or replace function public.moveSet (p_set_id int4, p_new_origin int4) 759s returns bigint 759s as $$ 759s declare 759s v_local_node_id int4; 759s v_set_row record; 759s v_sub_row record; 759s v_sync_seqno int8; 759s v_lv_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check that the set is locked and that this locking 759s -- happened long enough ago. 759s -- ---- 759s v_local_node_id := public.getLocalNodeId('_main'); 759s select * into v_set_row from public.sl_set 759s where set_id = p_set_id 759s for update; 759s if not found then 759s raise exception 'Slony-I: set % not found', p_set_id; 759s end if; 759s if v_set_row.set_origin <> v_local_node_id then 759s raise exception 'Slony-I: set % does not originate on local node', 759s p_set_id; 759s end if; 759s if v_set_row.set_locked isnull then 759s raise exception 'Slony-I: set % is not locked', p_set_id; 759s end if; 759s if v_set_row.set_locked > "pg_catalog".txid_snapshot_xmin("pg_catalog".txid_current_snapshot()) then 759s raise exception 'Slony-I: cannot move set % yet, transactions < % are still in progress', 759s p_set_id, v_set_row.set_locked; 759s end if; 759s 759s -- ---- 759s -- Unlock the set 759s -- ---- 759s perform public.unlockSet(p_set_id); 759s 759s -- ---- 759s -- Check that the new_origin is an active subscriber of the set 759s -- ---- 759s select * into v_sub_row from public.sl_subscribe 759s where sub_set = p_set_id 759s and sub_receiver = p_new_origin; 759s if not found then 759s raise exception 'Slony-I: set % is not subscribed by node %', 759s p_set_id, p_new_origin; 759s end if; 759s if not v_sub_row.sub_active then 759s raise exception 'Slony-I: subsctiption of node % for set % is inactive', 759s p_new_origin, p_set_id; 759s end if; 759s 759s -- ---- 759s -- Reconfigure everything 759s -- ---- 759s perform public.moveSet_int(p_set_id, v_local_node_id, 759s p_new_origin, 0); 759s 759s perform public.RebuildListenEntries(); 759s 759s -- ---- 759s -- At this time we hold access exclusive locks for every table 759s -- in the set. But we did move the set to the new origin, so the 759s -- createEvent() we are doing now will not record the sequences. 759s -- ---- 759s v_sync_seqno := public.createEvent('_main', 'SYNC'); 759s insert into public.sl_seqlog 759s (seql_seqid, seql_origin, seql_ev_seqno, seql_last_value) 759s select seq_id, v_local_node_id, v_sync_seqno, seq_last_value 759s from public.sl_seqlastvalue 759s where seq_set = p_set_id; 759s 759s -- ---- 759s -- Finally we generate the real event 759s -- ---- 759s return public.createEvent('_main', 'MOVE_SET', 759s p_set_id::text, v_local_node_id::text, p_new_origin::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.moveSet(p_set_id int4, p_new_origin int4) is 759s 'moveSet(set_id, new_origin) 759s 759s Generate MOVE_SET event to request that the origin for set set_id be moved to node new_origin'; 759s COMMENT 759s create or replace function public.moveSet_int (p_set_id int4, p_old_origin int4, p_new_origin int4, p_wait_seqno int8) 759s returns int4 759s as $$ 759s declare 759s v_local_node_id int4; 759s v_tab_row record; 759s v_sub_row record; 759s v_sub_node int4; 759s v_sub_last int4; 759s v_sub_next int4; 759s v_last_sync int8; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Get our local node ID 759s -- ---- 759s v_local_node_id := public.getLocalNodeId('_main'); 759s 759s -- On the new origin, raise an event - ACCEPT_SET 759s if v_local_node_id = p_new_origin then 759s -- Create a SYNC event as well so that the ACCEPT_SET has 759s -- the same snapshot as the last SYNC generated by the new 759s -- origin. This snapshot will be used by other nodes to 759s -- finalize the setsync status. 759s perform public.createEvent('_main', 'SYNC', NULL); 759s perform public.createEvent('_main', 'ACCEPT_SET', 759s p_set_id::text, p_old_origin::text, 759s p_new_origin::text, p_wait_seqno::text); 759s end if; 759s 759s -- ---- 759s -- Next we have to reverse the subscription path 759s -- ---- 759s v_sub_last = p_new_origin; 759s select sub_provider into v_sub_node 759s from public.sl_subscribe 759s where sub_set = p_set_id 759s and sub_receiver = p_new_origin; 759s if not found then 759s raise exception 'Slony-I: subscription path broken in moveSet_int'; 759s end if; 759s while v_sub_node <> p_old_origin loop 759s -- ---- 759s -- Tracing node by node, the old receiver is now in 759s -- v_sub_last and the old provider is in v_sub_node. 759s -- ---- 759s 759s -- ---- 759s -- Get the current provider of this node as next 759s -- and change the provider to the previous one in 759s -- the reverse chain. 759s -- ---- 759s select sub_provider into v_sub_next 759s from public.sl_subscribe 759s where sub_set = p_set_id 759s and sub_receiver = v_sub_node 759s for update; 759s if not found then 759s raise exception 'Slony-I: subscription path broken in moveSet_int'; 759s end if; 759s update public.sl_subscribe 759s set sub_provider = v_sub_last 759s where sub_set = p_set_id 759s and sub_receiver = v_sub_node 759s and sub_receiver <> v_sub_last; 759s 759s v_sub_last = v_sub_node; 759s v_sub_node = v_sub_next; 759s end loop; 759s 759s -- ---- 759s -- This includes creating a subscription for the old origin 759s -- ---- 759s insert into public.sl_subscribe 759s (sub_set, sub_provider, sub_receiver, 759s sub_forward, sub_active) 759s values (p_set_id, v_sub_last, p_old_origin, true, true); 759s if v_local_node_id = p_old_origin then 759s select coalesce(max(ev_seqno), 0) into v_last_sync 759s from public.sl_event 759s where ev_origin = p_new_origin 759s and ev_type = 'SYNC'; 759s if v_last_sync > 0 then 759s insert into public.sl_setsync 759s (ssy_setid, ssy_origin, ssy_seqno, 759s ssy_snapshot, ssy_action_list) 759s select p_set_id, p_new_origin, v_last_sync, 759s ev_snapshot, NULL 759s from public.sl_event 759s where ev_origin = p_new_origin 759s and ev_seqno = v_last_sync; 759s else 759s insert into public.sl_setsync 759s (ssy_setid, ssy_origin, ssy_seqno, 759s ssy_snapshot, ssy_action_list) 759s values (p_set_id, p_new_origin, '0', 759s '1:1:', NULL); 759s end if; 759s end if; 759s 759s -- ---- 759s -- Now change the ownership of the set. 759s -- ---- 759s update public.sl_set 759s set set_origin = p_new_origin 759s where set_id = p_set_id; 759s 759s -- ---- 759s -- On the new origin, delete the obsolete setsync information 759s -- and the subscription. 759s -- ---- 759s if v_local_node_id = p_new_origin then 759s delete from public.sl_setsync 759s where ssy_setid = p_set_id; 759s else 759s if v_local_node_id <> p_old_origin then 759s -- 759s -- On every other node, change the setsync so that it will 759s -- pick up from the new origins last known sync. 759s -- 759s delete from public.sl_setsync 759s where ssy_setid = p_set_id; 759s select coalesce(max(ev_seqno), 0) into v_last_sync 759s from public.sl_event 759s where ev_origin = p_new_origin 759s and ev_type = 'SYNC'; 759s if v_last_sync > 0 then 759s insert into public.sl_setsync 759s (ssy_setid, ssy_origin, ssy_seqno, 759s ssy_snapshot, ssy_action_list) 759s select p_set_id, p_new_origin, v_last_sync, 759s ev_snapshot, NULL 759s from public.sl_event 759s where ev_origin = p_new_origin 759s and ev_seqno = v_last_sync; 759s else 759s insert into public.sl_setsync 759s (ssy_setid, ssy_origin, ssy_seqno, 759s ssy_snapshot, ssy_action_list) 759s values (p_set_id, p_new_origin, 759s '0', '1:1:', NULL); 759s end if; 759s end if; 759s end if; 759s delete from public.sl_subscribe 759s where sub_set = p_set_id 759s and sub_receiver = p_new_origin; 759s 759s -- Regenerate sl_listen since we revised the subscriptions 759s perform public.RebuildListenEntries(); 759s 759s -- Run addPartialLogIndices() to try to add indices to unused sl_log_? table 759s perform public.addPartialLogIndices(); 759s 759s -- ---- 759s -- If we are the new or old origin, we have to 759s -- adjust the log and deny access trigger configuration. 759s -- ---- 759s if v_local_node_id = p_old_origin or v_local_node_id = p_new_origin then 759s for v_tab_row in select tab_id from public.sl_table 759s where tab_set = p_set_id 759s order by tab_id 759s loop 759s perform public.alterTableConfigureTriggers(v_tab_row.tab_id); 759s end loop; 759s end if; 759s 759s return p_set_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.moveSet_int(p_set_id int4, p_old_origin int4, p_new_origin int4, p_wait_seqno int8) is 759s 'moveSet(set_id, old_origin, new_origin, wait_seqno) 759s 759s Process MOVE_SET event to request that the origin for set set_id be 759s moved from old_origin to node new_origin'; 759s COMMENT 759s create or replace function public.dropSet (p_set_id int4) 759s returns bigint 759s as $$ 759s declare 759s v_origin int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check that the set exists and originates here 759s -- ---- 759s select set_origin into v_origin from public.sl_set 759s where set_id = p_set_id; 759s if not found then 759s raise exception 'Slony-I: set % not found', p_set_id; 759s end if; 759s if v_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: set % does not originate on local node', 759s p_set_id; 759s end if; 759s 759s -- ---- 759s -- Call the internal drop set functionality and generate the event 759s -- ---- 759s perform public.dropSet_int(p_set_id); 759s return public.createEvent('_main', 'DROP_SET', 759s p_set_id::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.dropSet(p_set_id int4) is 759s 'Generate DROP_SET event to drop replication of set set_id'; 759s COMMENT 759s create or replace function public.dropSet_int (p_set_id int4) 759s returns int4 759s as $$ 759s declare 759s v_tab_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Restore all tables original triggers and rules and remove 759s -- our replication stuff. 759s -- ---- 759s for v_tab_row in select tab_id from public.sl_table 759s where tab_set = p_set_id 759s order by tab_id 759s loop 759s perform public.alterTableDropTriggers(v_tab_row.tab_id); 759s end loop; 759s 759s -- ---- 759s -- Remove all traces of the set configuration 759s -- ---- 759s delete from public.sl_sequence 759s where seq_set = p_set_id; 759s delete from public.sl_table 759s where tab_set = p_set_id; 759s delete from public.sl_subscribe 759s where sub_set = p_set_id; 759s delete from public.sl_setsync 759s where ssy_setid = p_set_id; 759s delete from public.sl_set 759s where set_id = p_set_id; 759s 759s -- Regenerate sl_listen since we revised the subscriptions 759s perform public.RebuildListenEntries(); 759s 759s -- Run addPartialLogIndices() to try to add indices to unused sl_log_? table 759s perform public.addPartialLogIndices(); 759s 759s return p_set_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.dropSet(p_set_id int4) is 759s 'Process DROP_SET event to drop replication of set set_id. This involves: 759s - Removing log and deny access triggers 759s - Removing all traces of the set configuration, including sequences, tables, subscribers, syncs, and the set itself'; 759s COMMENT 759s create or replace function public.mergeSet (p_set_id int4, p_add_id int4) 759s returns bigint 759s as $$ 759s declare 759s v_origin int4; 759s in_progress boolean; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check that both sets exist and originate here 759s -- ---- 759s if p_set_id = p_add_id then 759s raise exception 'Slony-I: merged set ids cannot be identical'; 759s end if; 759s select set_origin into v_origin from public.sl_set 759s where set_id = p_set_id; 759s if not found then 759s raise exception 'Slony-I: set % not found', p_set_id; 759s end if; 759s if v_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: set % does not originate on local node', 759s p_set_id; 759s end if; 759s 759s select set_origin into v_origin from public.sl_set 759s where set_id = p_add_id; 759s if not found then 759s raise exception 'Slony-I: set % not found', p_add_id; 759s end if; 759s if v_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: set % does not originate on local node', 759s p_add_id; 759s end if; 759s 759s -- ---- 759s -- Check that both sets are subscribed by the same set of nodes 759s -- ---- 759s if exists (select true from public.sl_subscribe SUB1 759s where SUB1.sub_set = p_set_id 759s and SUB1.sub_receiver not in (select SUB2.sub_receiver 759s from public.sl_subscribe SUB2 759s where SUB2.sub_set = p_add_id)) 759s then 759s raise exception 'Slony-I: subscriber lists of set % and % are different', 759s p_set_id, p_add_id; 759s end if; 759s 759s if exists (select true from public.sl_subscribe SUB1 759s where SUB1.sub_set = p_add_id 759s and SUB1.sub_receiver not in (select SUB2.sub_receiver 759s from public.sl_subscribe SUB2 759s where SUB2.sub_set = p_set_id)) 759s then 759s raise exception 'Slony-I: subscriber lists of set % and % are different', 759s p_add_id, p_set_id; 759s end if; 759s 759s -- ---- 759s -- Check that all ENABLE_SUBSCRIPTION events for the set are confirmed 759s -- ---- 759s select public.isSubscriptionInProgress(p_add_id) into in_progress ; 759s 759s if in_progress then 759s raise exception 'Slony-I: set % has subscriptions in progress - cannot merge', 759s p_add_id; 759s end if; 759s 759s -- ---- 759s -- Create a SYNC event, merge the sets, create a MERGE_SET event 759s -- ---- 759s perform public.createEvent('_main', 'SYNC', NULL); 759s perform public.mergeSet_int(p_set_id, p_add_id); 759s return public.createEvent('_main', 'MERGE_SET', 759s p_set_id::text, p_add_id::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.mergeSet(p_set_id int4, p_add_id int4) is 759s 'Generate MERGE_SET event to request that sets be merged together. 759s 759s Both sets must exist, and originate on the same node. They must be 759s subscribed by the same set of nodes.'; 759s COMMENT 759s create or replace function public.isSubscriptionInProgress(p_add_id int4) 759s returns boolean 759s as $$ 759s begin 759s if exists (select true from public.sl_event 759s where ev_type = 'ENABLE_SUBSCRIPTION' 759s and ev_data1 = p_add_id::text 759s and ev_seqno > (select max(con_seqno) from public.sl_confirm 759s where con_origin = ev_origin 759s and con_received::text = ev_data3)) 759s then 759s return true; 759s else 759s return false; 759s end if; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.isSubscriptionInProgress(p_add_id int4) is 759s 'Checks to see if a subscription for the indicated set is in progress. 759s Returns true if a subscription is in progress. Otherwise false'; 759s COMMENT 759s create or replace function public.mergeSet_int (p_set_id int4, p_add_id int4) 759s returns int4 759s as $$ 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s update public.sl_sequence 759s set seq_set = p_set_id 759s where seq_set = p_add_id; 759s update public.sl_table 759s set tab_set = p_set_id 759s where tab_set = p_add_id; 759s delete from public.sl_subscribe 759s where sub_set = p_add_id; 759s delete from public.sl_setsync 759s where ssy_setid = p_add_id; 759s delete from public.sl_set 759s where set_id = p_add_id; 759s 759s return p_set_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.mergeSet_int(p_set_id int4, p_add_id int4) is 759s 'mergeSet_int(set_id, add_id) - Perform MERGE_SET event, merging all objects from 759s set add_id into set set_id.'; 759s COMMENT 759s create or replace function public.setAddTable(p_set_id int4, p_tab_id int4, p_fqname text, p_tab_idxname name, p_tab_comment text) 759s returns bigint 759s as $$ 759s declare 759s v_set_origin int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check that we are the origin of the set 759s -- ---- 759s select set_origin into v_set_origin 759s from public.sl_set 759s where set_id = p_set_id; 759s if not found then 759s raise exception 'Slony-I: setAddTable(): set % not found', p_set_id; 759s end if; 759s if v_set_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: setAddTable(): set % has remote origin', p_set_id; 759s end if; 759s 759s if exists (select true from public.sl_subscribe 759s where sub_set = p_set_id) 759s then 759s raise exception 'Slony-I: cannot add table to currently subscribed set % - must attach to an unsubscribed set', 759s p_set_id; 759s end if; 759s 759s -- ---- 759s -- Add the table to the set and generate the SET_ADD_TABLE event 759s -- ---- 759s perform public.setAddTable_int(p_set_id, p_tab_id, p_fqname, 759s p_tab_idxname, p_tab_comment); 759s return public.createEvent('_main', 'SET_ADD_TABLE', 759s p_set_id::text, p_tab_id::text, p_fqname::text, 759s p_tab_idxname::text, p_tab_comment::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setAddTable(p_set_id int4, p_tab_id int4, p_fqname text, p_tab_idxname name, p_tab_comment text) is 759s 'setAddTable (set_id, tab_id, tab_fqname, tab_idxname, tab_comment) 759s 759s Add table tab_fqname to replication set on origin node, and generate 759s SET_ADD_TABLE event to allow this to propagate to other nodes. 759s 759s Note that the table id, tab_id, must be unique ACROSS ALL SETS.'; 759s COMMENT 759s create or replace function public.setAddTable_int(p_set_id int4, p_tab_id int4, p_fqname text, p_tab_idxname name, p_tab_comment text) 759s returns int4 759s as $$ 759s declare 759s v_tab_relname name; 759s v_tab_nspname name; 759s v_local_node_id int4; 759s v_set_origin int4; 759s v_sub_provider int4; 759s v_relkind char; 759s v_tab_reloid oid; 759s v_pkcand_nn boolean; 759s v_prec record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- For sets with a remote origin, check that we are subscribed 759s -- to that set. Otherwise we ignore the table because it might 759s -- not even exist in our database. 759s -- ---- 759s v_local_node_id := public.getLocalNodeId('_main'); 759s select set_origin into v_set_origin 759s from public.sl_set 759s where set_id = p_set_id; 759s if not found then 759s raise exception 'Slony-I: setAddTable_int(): set % not found', 759s p_set_id; 759s end if; 759s if v_set_origin != v_local_node_id then 759s select sub_provider into v_sub_provider 759s from public.sl_subscribe 759s where sub_set = p_set_id 759s and sub_receiver = public.getLocalNodeId('_main'); 759s if not found then 759s return 0; 759s end if; 759s end if; 759s 759s -- ---- 759s -- Get the tables OID and check that it is a real table 759s -- ---- 759s select PGC.oid, PGC.relkind, PGC.relname, PGN.nspname into v_tab_reloid, v_relkind, v_tab_relname, v_tab_nspname 759s from "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN 759s where PGC.relnamespace = PGN.oid 759s and public.slon_quote_input(p_fqname) = public.slon_quote_brute(PGN.nspname) || 759s '.' || public.slon_quote_brute(PGC.relname); 759s if not found then 759s raise exception 'Slony-I: setAddTable_int(): table % not found', 759s p_fqname; 759s end if; 759s if v_relkind != 'r' then 759s raise exception 'Slony-I: setAddTable_int(): % is not a regular table', 759s p_fqname; 759s end if; 759s 759s if not exists (select indexrelid 759s from "pg_catalog".pg_index PGX, "pg_catalog".pg_class PGC 759s where PGX.indrelid = v_tab_reloid 759s and PGX.indexrelid = PGC.oid 759s and PGC.relname = p_tab_idxname) 759s then 759s raise exception 'Slony-I: setAddTable_int(): table % has no index %', 759s p_fqname, p_tab_idxname; 759s end if; 759s 759s -- ---- 759s -- Verify that the columns in the PK (or candidate) are not NULLABLE 759s -- ---- 759s 759s v_pkcand_nn := 'f'; 759s for v_prec in select attname from "pg_catalog".pg_attribute where attrelid = 759s (select oid from "pg_catalog".pg_class where oid = v_tab_reloid) 759s and attname in (select attname from "pg_catalog".pg_attribute where 759s attrelid = (select oid from "pg_catalog".pg_class PGC, 759s "pg_catalog".pg_index PGX where 759s PGC.relname = p_tab_idxname and PGX.indexrelid=PGC.oid and 759s PGX.indrelid = v_tab_reloid)) and attnotnull <> 't' 759s loop 759s raise notice 'Slony-I: setAddTable_int: table % PK column % nullable', p_fqname, v_prec.attname; 759s v_pkcand_nn := 't'; 759s end loop; 759s if v_pkcand_nn then 759s raise exception 'Slony-I: setAddTable_int: table % not replicable!', p_fqname; 759s end if; 759s 759s select * into v_prec from public.sl_table where tab_id = p_tab_id; 759s if not found then 759s v_pkcand_nn := 't'; -- No-op -- All is well 759s else 759s raise exception 'Slony-I: setAddTable_int: table id % has already been assigned!', p_tab_id; 759s end if; 759s 759s -- ---- 759s -- Add the table to sl_table and create the trigger on it. 759s -- ---- 759s insert into public.sl_table 759s (tab_id, tab_reloid, tab_relname, tab_nspname, 759s tab_set, tab_idxname, tab_altered, tab_comment) 759s values 759s (p_tab_id, v_tab_reloid, v_tab_relname, v_tab_nspname, 759s p_set_id, p_tab_idxname, false, p_tab_comment); 759s perform public.alterTableAddTriggers(p_tab_id); 759s 759s return p_tab_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setAddTable_int(p_set_id int4, p_tab_id int4, p_fqname text, p_tab_idxname name, p_tab_comment text) is 759s 'setAddTable_int (set_id, tab_id, tab_fqname, tab_idxname, tab_comment) 759s 759s This function processes the SET_ADD_TABLE event on remote nodes, 759s adding a table to replication if the remote node is subscribing to its 759s replication set.'; 759s COMMENT 759s create or replace function public.setDropTable(p_tab_id int4) 759s returns bigint 759s as $$ 759s declare 759s v_set_id int4; 759s v_set_origin int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Determine the set_id 759s -- ---- 759s select tab_set into v_set_id from public.sl_table where tab_id = p_tab_id; 759s 759s -- ---- 759s -- Ensure table exists 759s -- ---- 759s if not found then 759s raise exception 'Slony-I: setDropTable_int(): table % not found', 759s p_tab_id; 759s end if; 759s 759s -- ---- 759s -- Check that we are the origin of the set 759s -- ---- 759s select set_origin into v_set_origin 759s from public.sl_set 759s where set_id = v_set_id; 759s if not found then 759s raise exception 'Slony-I: setDropTable(): set % not found', v_set_id; 759s end if; 759s if v_set_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: setDropTable(): set % has remote origin', v_set_id; 759s end if; 759s 759s -- ---- 759s -- Drop the table from the set and generate the SET_ADD_TABLE event 759s -- ---- 759s perform public.setDropTable_int(p_tab_id); 759s return public.createEvent('_main', 'SET_DROP_TABLE', 759s p_tab_id::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setDropTable(p_tab_id int4) is 759s 'setDropTable (tab_id) 759s 759s Drop table tab_id from set on origin node, and generate SET_DROP_TABLE 759s event to allow this to propagate to other nodes.'; 759s COMMENT 759s create or replace function public.setDropTable_int(p_tab_id int4) 759s returns int4 759s as $$ 759s declare 759s v_set_id int4; 759s v_local_node_id int4; 759s v_set_origin int4; 759s v_sub_provider int4; 759s v_tab_reloid oid; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Determine the set_id 759s -- ---- 759s select tab_set into v_set_id from public.sl_table where tab_id = p_tab_id; 759s 759s -- ---- 759s -- Ensure table exists 759s -- ---- 759s if not found then 759s return 0; 759s end if; 759s 759s -- ---- 759s -- For sets with a remote origin, check that we are subscribed 759s -- to that set. Otherwise we ignore the table because it might 759s -- not even exist in our database. 759s -- ---- 759s v_local_node_id := public.getLocalNodeId('_main'); 759s select set_origin into v_set_origin 759s from public.sl_set 759s where set_id = v_set_id; 759s if not found then 759s raise exception 'Slony-I: setDropTable_int(): set % not found', 759s v_set_id; 759s end if; 759s if v_set_origin != v_local_node_id then 759s select sub_provider into v_sub_provider 759s from public.sl_subscribe 759s where sub_set = v_set_id 759s and sub_receiver = public.getLocalNodeId('_main'); 759s if not found then 759s return 0; 759s end if; 759s end if; 759s 759s -- ---- 759s -- Drop the table from sl_table and drop trigger from it. 759s -- ---- 759s perform public.alterTableDropTriggers(p_tab_id); 759s delete from public.sl_table where tab_id = p_tab_id; 759s return p_tab_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setDropTable_int(p_tab_id int4) is 759s 'setDropTable_int (tab_id) 759s 759s This function processes the SET_DROP_TABLE event on remote nodes, 759s dropping a table from replication if the remote node is subscribing to 759s its replication set.'; 759s COMMENT 759s create or replace function public.setAddSequence (p_set_id int4, p_seq_id int4, p_fqname text, p_seq_comment text) 759s returns bigint 759s as $$ 759s declare 759s v_set_origin int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check that we are the origin of the set 759s -- ---- 759s select set_origin into v_set_origin 759s from public.sl_set 759s where set_id = p_set_id; 759s if not found then 759s raise exception 'Slony-I: setAddSequence(): set % not found', p_set_id; 759s end if; 759s if v_set_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: setAddSequence(): set % has remote origin - submit to origin node', p_set_id; 759s end if; 759s 759s if exists (select true from public.sl_subscribe 759s where sub_set = p_set_id) 759s then 759s raise exception 'Slony-I: cannot add sequence to currently subscribed set %', 759s p_set_id; 759s end if; 759s 759s -- ---- 759s -- Add the sequence to the set and generate the SET_ADD_SEQUENCE event 759s -- ---- 759s perform public.setAddSequence_int(p_set_id, p_seq_id, p_fqname, 759s p_seq_comment); 759s return public.createEvent('_main', 'SET_ADD_SEQUENCE', 759s p_set_id::text, p_seq_id::text, 759s p_fqname::text, p_seq_comment::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setAddSequence (p_set_id int4, p_seq_id int4, p_fqname text, p_seq_comment text) is 759s 'setAddSequence (set_id, seq_id, seq_fqname, seq_comment) 759s 759s On the origin node for set set_id, add sequence seq_fqname to the 759s replication set, and raise SET_ADD_SEQUENCE to cause this to replicate 759s to subscriber nodes.'; 759s COMMENT 759s create or replace function public.setAddSequence_int(p_set_id int4, p_seq_id int4, p_fqname text, p_seq_comment text) 759s returns int4 759s as $$ 759s declare 759s v_local_node_id int4; 759s v_set_origin int4; 759s v_sub_provider int4; 759s v_relkind char; 759s v_seq_reloid oid; 759s v_seq_relname name; 759s v_seq_nspname name; 759s v_sync_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- For sets with a remote origin, check that we are subscribed 759s -- to that set. Otherwise we ignore the sequence because it might 759s -- not even exist in our database. 759s -- ---- 759s v_local_node_id := public.getLocalNodeId('_main'); 759s select set_origin into v_set_origin 759s from public.sl_set 759s where set_id = p_set_id; 759s if not found then 759s raise exception 'Slony-I: setAddSequence_int(): set % not found', 759s p_set_id; 759s end if; 759s if v_set_origin != v_local_node_id then 759s select sub_provider into v_sub_provider 759s from public.sl_subscribe 759s where sub_set = p_set_id 759s and sub_receiver = public.getLocalNodeId('_main'); 759s if not found then 759s return 0; 759s end if; 759s end if; 759s 759s -- ---- 759s -- Get the sequences OID and check that it is a sequence 759s -- ---- 759s select PGC.oid, PGC.relkind, PGC.relname, PGN.nspname 759s into v_seq_reloid, v_relkind, v_seq_relname, v_seq_nspname 759s from "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN 759s where PGC.relnamespace = PGN.oid 759s and public.slon_quote_input(p_fqname) = public.slon_quote_brute(PGN.nspname) || 759s '.' || public.slon_quote_brute(PGC.relname); 759s if not found then 759s raise exception 'Slony-I: setAddSequence_int(): sequence % not found', 759s p_fqname; 759s end if; 759s if v_relkind != 'S' then 759s raise exception 'Slony-I: setAddSequence_int(): % is not a sequence', 759s p_fqname; 759s end if; 759s 759s select 1 into v_sync_row from public.sl_sequence where seq_id = p_seq_id; 759s if not found then 759s v_relkind := 'o'; -- all is OK 759s else 759s raise exception 'Slony-I: setAddSequence_int(): sequence ID % has already been assigned', p_seq_id; 759s end if; 759s 759s -- ---- 759s -- Add the sequence to sl_sequence 759s -- ---- 759s insert into public.sl_sequence 759s (seq_id, seq_reloid, seq_relname, seq_nspname, seq_set, seq_comment) 759s values 759s (p_seq_id, v_seq_reloid, v_seq_relname, v_seq_nspname, p_set_id, p_seq_comment); 759s 759s -- ---- 759s -- On the set origin, fake a sl_seqlog row for the last sync event 759s -- ---- 759s if v_set_origin = v_local_node_id then 759s for v_sync_row in select coalesce (max(ev_seqno), 0) as ev_seqno 759s from public.sl_event 759s where ev_origin = v_local_node_id 759s and ev_type = 'SYNC' 759s loop 759s insert into public.sl_seqlog 759s (seql_seqid, seql_origin, seql_ev_seqno, 759s seql_last_value) values 759s (p_seq_id, v_local_node_id, v_sync_row.ev_seqno, 759s public.sequenceLastValue(p_fqname)); 759s end loop; 759s end if; 759s 759s return p_seq_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setAddSequence_int(p_set_id int4, p_seq_id int4, p_fqname text, p_seq_comment text) is 759s 'setAddSequence_int (set_id, seq_id, seq_fqname, seq_comment) 759s 759s This processes the SET_ADD_SEQUENCE event. On remote nodes that 759s subscribe to set_id, add the sequence to the replication set.'; 759s COMMENT 759s create or replace function public.setDropSequence (p_seq_id int4) 759s returns bigint 759s as $$ 759s declare 759s v_set_id int4; 759s v_set_origin int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Determine set id for this sequence 759s -- ---- 759s select seq_set into v_set_id from public.sl_sequence where seq_id = p_seq_id; 759s 759s -- ---- 759s -- Ensure sequence exists 759s -- ---- 759s if not found then 759s raise exception 'Slony-I: setDropSequence_int(): sequence % not found', 759s p_seq_id; 759s end if; 759s 759s -- ---- 759s -- Check that we are the origin of the set 759s -- ---- 759s select set_origin into v_set_origin 759s from public.sl_set 759s where set_id = v_set_id; 759s if not found then 759s raise exception 'Slony-I: setDropSequence(): set % not found', v_set_id; 759s end if; 759s if v_set_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: setDropSequence(): set % has origin at another node - submit this to that node', v_set_id; 759s end if; 759s 759s -- ---- 759s -- Add the sequence to the set and generate the SET_ADD_SEQUENCE event 759s -- ---- 759s perform public.setDropSequence_int(p_seq_id); 759s return public.createEvent('_main', 'SET_DROP_SEQUENCE', 759s p_seq_id::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setDropSequence (p_seq_id int4) is 759s 'setDropSequence (seq_id) 759s 759s On the origin node for the set, drop sequence seq_id from replication 759s set, and raise SET_DROP_SEQUENCE to cause this to replicate to 759s subscriber nodes.'; 759s COMMENT 759s create or replace function public.setDropSequence_int(p_seq_id int4) 759s returns int4 759s as $$ 759s declare 759s v_set_id int4; 759s v_local_node_id int4; 759s v_set_origin int4; 759s v_sub_provider int4; 759s v_relkind char; 759s v_sync_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Determine set id for this sequence 759s -- ---- 759s select seq_set into v_set_id from public.sl_sequence where seq_id = p_seq_id; 759s 759s -- ---- 759s -- Ensure sequence exists 759s -- ---- 759s if not found then 759s return 0; 759s end if; 759s 759s -- ---- 759s -- For sets with a remote origin, check that we are subscribed 759s -- to that set. Otherwise we ignore the sequence because it might 759s -- not even exist in our database. 759s -- ---- 759s v_local_node_id := public.getLocalNodeId('_main'); 759s select set_origin into v_set_origin 759s from public.sl_set 759s where set_id = v_set_id; 759s if not found then 759s raise exception 'Slony-I: setDropSequence_int(): set % not found', 759s v_set_id; 759s end if; 759s if v_set_origin != v_local_node_id then 759s select sub_provider into v_sub_provider 759s from public.sl_subscribe 759s where sub_set = v_set_id 759s and sub_receiver = public.getLocalNodeId('_main'); 759s if not found then 759s return 0; 759s end if; 759s end if; 759s 759s -- ---- 759s -- drop the sequence from sl_sequence, sl_seqlog 759s -- ---- 759s delete from public.sl_seqlog where seql_seqid = p_seq_id; 759s delete from public.sl_sequence where seq_id = p_seq_id; 759s 759s return p_seq_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setDropSequence_int(p_seq_id int4) is 759s 'setDropSequence_int (seq_id) 759s 759s This processes the SET_DROP_SEQUENCE event. On remote nodes that 759s subscribe to the set containing sequence seq_id, drop the sequence 759s from the replication set.'; 759s COMMENT 759s create or replace function public.setMoveTable (p_tab_id int4, p_new_set_id int4) 759s returns bigint 759s as $$ 759s declare 759s v_old_set_id int4; 759s v_origin int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Get the tables current set 759s -- ---- 759s select tab_set into v_old_set_id from public.sl_table 759s where tab_id = p_tab_id; 759s if not found then 759s raise exception 'Slony-I: table %d not found', p_tab_id; 759s end if; 759s 759s -- ---- 759s -- Check that both sets exist and originate here 759s -- ---- 759s if p_new_set_id = v_old_set_id then 759s raise exception 'Slony-I: set ids cannot be identical'; 759s end if; 759s select set_origin into v_origin from public.sl_set 759s where set_id = p_new_set_id; 759s if not found then 759s raise exception 'Slony-I: set % not found', p_new_set_id; 759s end if; 759s if v_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: set % does not originate on local node', 759s p_new_set_id; 759s end if; 759s 759s select set_origin into v_origin from public.sl_set 759s where set_id = v_old_set_id; 759s if not found then 759s raise exception 'Slony-I: set % not found', v_old_set_id; 759s end if; 759s if v_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: set % does not originate on local node', 759s v_old_set_id; 759s end if; 759s 759s -- ---- 759s -- Check that both sets are subscribed by the same set of nodes 759s -- ---- 759s if exists (select true from public.sl_subscribe SUB1 759s where SUB1.sub_set = p_new_set_id 759s and SUB1.sub_receiver not in (select SUB2.sub_receiver 759s from public.sl_subscribe SUB2 759s where SUB2.sub_set = v_old_set_id)) 759s then 759s raise exception 'Slony-I: subscriber lists of set % and % are different', 759s p_new_set_id, v_old_set_id; 759s end if; 759s 759s if exists (select true from public.sl_subscribe SUB1 759s where SUB1.sub_set = v_old_set_id 759s and SUB1.sub_receiver not in (select SUB2.sub_receiver 759s from public.sl_subscribe SUB2 759s where SUB2.sub_set = p_new_set_id)) 759s then 759s raise exception 'Slony-I: subscriber lists of set % and % are different', 759s v_old_set_id, p_new_set_id; 759s end if; 759s 759s -- ---- 759s -- Change the set the table belongs to 759s -- ---- 759s perform public.createEvent('_main', 'SYNC', NULL); 759s perform public.setMoveTable_int(p_tab_id, p_new_set_id); 759s return public.createEvent('_main', 'SET_MOVE_TABLE', 759s p_tab_id::text, p_new_set_id::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setMoveTable(p_tab_id int4, p_new_set_id int4) is 759s 'This generates the SET_MOVE_TABLE event. If the set that the table is 759s in is identically subscribed to the set that the table is to be moved 759s into, then the SET_MOVE_TABLE event is raised.'; 759s COMMENT 759s create or replace function public.setMoveTable_int (p_tab_id int4, p_new_set_id int4) 759s returns int4 759s as $$ 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Move the table to the new set 759s -- ---- 759s update public.sl_table 759s set tab_set = p_new_set_id 759s where tab_id = p_tab_id; 759s 759s return p_tab_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setMoveTable(p_tab_id int4, p_new_set_id int4) is 759s 'This processes the SET_MOVE_TABLE event. The table is moved 759s to the destination set.'; 759s COMMENT 759s create or replace function public.setMoveSequence (p_seq_id int4, p_new_set_id int4) 759s returns bigint 759s as $$ 759s declare 759s v_old_set_id int4; 759s v_origin int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Get the sequences current set 759s -- ---- 759s select seq_set into v_old_set_id from public.sl_sequence 759s where seq_id = p_seq_id; 759s if not found then 759s raise exception 'Slony-I: setMoveSequence(): sequence %d not found', p_seq_id; 759s end if; 759s 759s -- ---- 759s -- Check that both sets exist and originate here 759s -- ---- 759s if p_new_set_id = v_old_set_id then 759s raise exception 'Slony-I: setMoveSequence(): set ids cannot be identical'; 759s end if; 759s select set_origin into v_origin from public.sl_set 759s where set_id = p_new_set_id; 759s if not found then 759s raise exception 'Slony-I: setMoveSequence(): set % not found', p_new_set_id; 759s end if; 759s if v_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: setMoveSequence(): set % does not originate on local node', 759s p_new_set_id; 759s end if; 759s 759s select set_origin into v_origin from public.sl_set 759s where set_id = v_old_set_id; 759s if not found then 759s raise exception 'Slony-I: set % not found', v_old_set_id; 759s end if; 759s if v_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: set % does not originate on local node', 759s v_old_set_id; 759s end if; 759s 759s -- ---- 759s -- Check that both sets are subscribed by the same set of nodes 759s -- ---- 759s if exists (select true from public.sl_subscribe SUB1 759s where SUB1.sub_set = p_new_set_id 759s and SUB1.sub_receiver not in (select SUB2.sub_receiver 759s from public.sl_subscribe SUB2 759s where SUB2.sub_set = v_old_set_id)) 759s then 759s raise exception 'Slony-I: subscriber lists of set % and % are different', 759s p_new_set_id, v_old_set_id; 759s end if; 759s 759s if exists (select true from public.sl_subscribe SUB1 759s where SUB1.sub_set = v_old_set_id 759s and SUB1.sub_receiver not in (select SUB2.sub_receiver 759s from public.sl_subscribe SUB2 759s where SUB2.sub_set = p_new_set_id)) 759s then 759s raise exception 'Slony-I: subscriber lists of set % and % are different', 759s v_old_set_id, p_new_set_id; 759s end if; 759s 759s -- ---- 759s -- Change the set the sequence belongs to 759s -- ---- 759s perform public.setMoveSequence_int(p_seq_id, p_new_set_id); 759s return public.createEvent('_main', 'SET_MOVE_SEQUENCE', 759s p_seq_id::text, p_new_set_id::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setMoveSequence (p_seq_id int4, p_new_set_id int4) is 759s 'setMoveSequence(p_seq_id, p_new_set_id) - This generates the 759s SET_MOVE_SEQUENCE event, after validation, notably that both sets 759s exist, are distinct, and have exactly the same subscription lists'; 759s COMMENT 759s create or replace function public.setMoveSequence_int (p_seq_id int4, p_new_set_id int4) 759s returns int4 759s as $$ 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Move the sequence to the new set 759s -- ---- 759s update public.sl_sequence 759s set seq_set = p_new_set_id 759s where seq_id = p_seq_id; 759s 759s return p_seq_id; 759s end; 759s $$ language plpgsql; 759s NOTICE: function public.ddlcapture(text,text) does not exist, skipping 759s NOTICE: function public.ddlscript_complete(int4,text,int4) does not exist, skipping 759s NOTICE: function public.ddlscript_complete_int(int4,int4) does not exist, skipping 759s CREATE FUNCTION 759s comment on function public.setMoveSequence_int (p_seq_id int4, p_new_set_id int4) is 759s 'setMoveSequence_int(p_seq_id, p_new_set_id) - processes the 759s SET_MOVE_SEQUENCE event, moving a sequence to another replication 759s set.'; 759s COMMENT 759s create or replace function public.sequenceSetValue(p_seq_id int4, p_seq_origin int4, p_ev_seqno int8, p_last_value int8,p_ignore_missing bool) returns int4 759s as $$ 759s declare 759s v_fqname text; 759s v_found integer; 759s begin 759s -- ---- 759s -- Get the sequences fully qualified name 759s -- ---- 759s select public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) into v_fqname 759s from public.sl_sequence SQ, 759s "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN 759s where SQ.seq_id = p_seq_id 759s and SQ.seq_reloid = PGC.oid 759s and PGC.relnamespace = PGN.oid; 759s if not found then 759s if p_ignore_missing then 759s return null; 759s end if; 759s raise exception 'Slony-I: sequenceSetValue(): sequence % not found', p_seq_id; 759s end if; 759s 759s -- ---- 759s -- Update it to the new value 759s -- ---- 759s execute 'select setval(''' || v_fqname || 759s ''', ' || p_last_value::text || ')'; 759s 759s if p_ev_seqno is not null then 759s insert into public.sl_seqlog 759s (seql_seqid, seql_origin, seql_ev_seqno, seql_last_value) 759s values (p_seq_id, p_seq_origin, p_ev_seqno, p_last_value); 759s end if; 759s return p_seq_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.sequenceSetValue(p_seq_id int4, p_seq_origin int4, p_ev_seqno int8, p_last_value int8,p_ignore_missing bool) is 759s 'sequenceSetValue (seq_id, seq_origin, ev_seqno, last_value,ignore_missing) 759s Set sequence seq_id to have new value last_value. 759s '; 759s COMMENT 759s drop function if exists public.ddlCapture (p_statement text, p_nodes text); 759s DROP FUNCTION 759s create or replace function public.ddlCapture (p_statement text, p_nodes text) 759s returns bigint 759s as $$ 759s declare 759s c_local_node integer; 759s c_found_origin boolean; 759s c_node text; 759s c_cmdargs text[]; 759s c_nodeargs text; 759s c_delim text; 759s begin 759s c_local_node := public.getLocalNodeId('_main'); 759s 759s c_cmdargs = array_append('{}'::text[], p_statement); 759s c_nodeargs = ''; 759s if p_nodes is not null then 759s c_found_origin := 'f'; 759s -- p_nodes list needs to consist of a list of nodes that exist 759s -- and that include the current node ID 759s for c_node in select trim(node) from 759s pg_catalog.regexp_split_to_table(p_nodes, ',') as node loop 759s if not exists 759s (select 1 from public.sl_node 759s where no_id = (c_node::integer)) then 759s raise exception 'ddlcapture(%,%) - node % does not exist!', 759s p_statement, p_nodes, c_node; 759s end if; 759s 759s if c_local_node = (c_node::integer) then 759s c_found_origin := 't'; 759s end if; 759s if length(c_nodeargs)>0 then 759s c_nodeargs = c_nodeargs ||','|| c_node; 759s else 759s c_nodeargs=c_node; 759s end if; 759s end loop; 759s 759s if not c_found_origin then 759s raise exception 759s 'ddlcapture(%,%) - origin node % not included in ONLY ON list!', 759s p_statement, p_nodes, c_local_node; 759s end if; 759s end if; 759s c_cmdargs = array_append(c_cmdargs,c_nodeargs); 759s c_delim=','; 759s c_cmdargs = array_append(c_cmdargs, 759s 759s (select public.string_agg( seq_id::text || c_delim 759s || c_local_node || 759s c_delim || seq_last_value) 759s FROM ( 759s select seq_id, 759s seq_last_value from public.sl_seqlastvalue 759s where seq_origin = c_local_node) as FOO 759s where NOT public.seqtrack(seq_id,seq_last_value) is NULL)); 759s insert into public.sl_log_script 759s (log_origin, log_txid, log_actionseq, log_cmdtype, log_cmdargs) 759s values 759s (c_local_node, pg_catalog.txid_current(), 759s nextval('public.sl_action_seq'), 'S', c_cmdargs); 759s execute p_statement; 759s return currval('public.sl_action_seq'); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.ddlCapture (p_statement text, p_nodes text) is 759s 'Capture an SQL statement (usually DDL) that is to be literally replayed on subscribers'; 759s COMMENT 759s drop function if exists public.ddlScript_complete (int4, text, int4); 759s DROP FUNCTION 759s create or replace function public.ddlScript_complete (p_nodes text) 759s returns bigint 759s as $$ 759s declare 759s c_local_node integer; 759s c_found_origin boolean; 759s c_node text; 759s c_cmdargs text[]; 759s begin 759s c_local_node := public.getLocalNodeId('_main'); 759s 759s c_cmdargs = '{}'::text[]; 759s if p_nodes is not null then 759s c_found_origin := 'f'; 759s -- p_nodes list needs to consist o a list of nodes that exist 759s -- and that include the current node ID 759s for c_node in select trim(node) from 759s pg_catalog.regexp_split_to_table(p_nodes, ',') as node loop 759s if not exists 759s (select 1 from public.sl_node 759s where no_id = (c_node::integer)) then 759s raise exception 'ddlcapture(%,%) - node % does not exist!', 759s p_statement, p_nodes, c_node; 759s end if; 759s 759s if c_local_node = (c_node::integer) then 759s c_found_origin := 't'; 759s end if; 759s 759s c_cmdargs = array_append(c_cmdargs, c_node); 759s end loop; 759s 759s if not c_found_origin then 759s raise exception 759s 'ddlScript_complete(%) - origin node % not included in ONLY ON list!', 759s p_nodes, c_local_node; 759s end if; 759s end if; 759s 759s perform public.ddlScript_complete_int(); 759s 759s insert into public.sl_log_script 759s (log_origin, log_txid, log_actionseq, log_cmdtype, log_cmdargs) 759s values 759s (c_local_node, pg_catalog.txid_current(), 759s nextval('public.sl_action_seq'), 's', c_cmdargs); 759s 759s return currval('public.sl_action_seq'); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.ddlScript_complete(p_nodes text) is 759s 'ddlScript_complete(set_id, script, only_on_node) 759s 759s After script has run on origin, this fixes up relnames and 759s log trigger arguments and inserts the "fire ddlScript_complete_int() 759s log row into sl_log_script.'; 759s COMMENT 759s drop function if exists public.ddlScript_complete_int(int4, int4); 759s DROP FUNCTION 759s create or replace function public.ddlScript_complete_int () 759s returns int4 759s as $$ 759s begin 759s perform public.updateRelname(); 759s perform public.repair_log_triggers(true); 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.ddlScript_complete_int() is 759s 'ddlScript_complete_int() 759s 759s Complete processing the DDL_SCRIPT event.'; 759s COMMENT 759s create or replace function public.alterTableAddTriggers (p_tab_id int4) 759s returns int4 759s as $$ 759s declare 759s v_no_id int4; 759s v_tab_row record; 759s v_tab_fqname text; 759s v_tab_attkind text; 759s v_n int4; 759s v_trec record; 759s v_tgbad boolean; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Get our local node ID 759s -- ---- 759s v_no_id := public.getLocalNodeId('_main'); 759s 759s -- ---- 759s -- Get the sl_table row and the current origin of the table. 759s -- ---- 759s select T.tab_reloid, T.tab_set, T.tab_idxname, 759s S.set_origin, PGX.indexrelid, 759s public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) as tab_fqname 759s into v_tab_row 759s from public.sl_table T, public.sl_set S, 759s "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN, 759s "pg_catalog".pg_index PGX, "pg_catalog".pg_class PGXC 759s where T.tab_id = p_tab_id 759s and T.tab_set = S.set_id 759s and T.tab_reloid = PGC.oid 759s and PGC.relnamespace = PGN.oid 759s and PGX.indrelid = T.tab_reloid 759s and PGX.indexrelid = PGXC.oid 759s and PGXC.relname = T.tab_idxname 759s for update; 759s if not found then 759s raise exception 'Slony-I: alterTableAddTriggers(): Table with id % not found', p_tab_id; 759s end if; 759s v_tab_fqname = v_tab_row.tab_fqname; 759s 759s v_tab_attkind := public.determineAttKindUnique(v_tab_row.tab_fqname, 759s v_tab_row.tab_idxname); 759s 759s execute 'lock table ' || v_tab_fqname || ' in access exclusive mode'; 759s 759s -- ---- 759s -- Create the log and the deny access triggers 759s -- ---- 759s execute 'create trigger "_main_logtrigger"' || 759s ' after insert or update or delete on ' || 759s v_tab_fqname || ' for each row execute procedure public.logTrigger (' || 759s pg_catalog.quote_literal('_main') || ',' || 759s pg_catalog.quote_literal(p_tab_id::text) || ',' || 759s pg_catalog.quote_literal(v_tab_attkind) || ');'; 759s 759s execute 'create trigger "_main_denyaccess" ' || 759s 'before insert or update or delete on ' || 759s v_tab_fqname || ' for each row execute procedure ' || 759s 'public.denyAccess (' || pg_catalog.quote_literal('_main') || ');'; 759s 759s perform public.alterTableAddTruncateTrigger(v_tab_fqname, p_tab_id); 759s 759s perform public.alterTableConfigureTriggers (p_tab_id); 759s return p_tab_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.alterTableAddTriggers(p_tab_id int4) is 759s 'alterTableAddTriggers(tab_id) 759s 759s Adds the log and deny access triggers to a replicated table.'; 759s COMMENT 759s create or replace function public.alterTableDropTriggers (p_tab_id int4) 759s returns int4 759s as $$ 759s declare 759s v_no_id int4; 759s v_tab_row record; 759s v_tab_fqname text; 759s v_n int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Get our local node ID 759s -- ---- 759s v_no_id := public.getLocalNodeId('_main'); 759s 759s -- ---- 759s -- Get the sl_table row and the current tables origin. 759s -- ---- 759s select T.tab_reloid, T.tab_set, 759s S.set_origin, PGX.indexrelid, 759s public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) as tab_fqname 759s into v_tab_row 759s from public.sl_table T, public.sl_set S, 759s "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN, 759s "pg_catalog".pg_index PGX, "pg_catalog".pg_class PGXC 759s where T.tab_id = p_tab_id 759s and T.tab_set = S.set_id 759s and T.tab_reloid = PGC.oid 759s and PGC.relnamespace = PGN.oid 759s and PGX.indrelid = T.tab_reloid 759s and PGX.indexrelid = PGXC.oid 759s and PGXC.relname = T.tab_idxname 759s for update; 759s if not found then 759s raise exception 'Slony-I: alterTableDropTriggers(): Table with id % not found', p_tab_id; 759s end if; 759s v_tab_fqname = v_tab_row.tab_fqname; 759s 759s execute 'lock table ' || v_tab_fqname || ' in access exclusive mode'; 759s 759s -- ---- 759s -- Drop both triggers 759s -- ---- 759s execute 'drop trigger "_main_logtrigger" on ' || 759s v_tab_fqname; 759s 759s execute 'drop trigger "_main_denyaccess" on ' || 759s v_tab_fqname; 759s 759s perform public.alterTableDropTruncateTrigger(v_tab_fqname, p_tab_id); 759s 759s return p_tab_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.alterTableDropTriggers (p_tab_id int4) is 759s 'alterTableDropTriggers (tab_id) 759s 759s Remove the log and deny access triggers from a table.'; 759s COMMENT 759s create or replace function public.alterTableConfigureTriggers (p_tab_id int4) 759s returns int4 759s as $$ 759s declare 759s v_no_id int4; 759s v_tab_row record; 759s v_tab_fqname text; 759s v_n int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Get our local node ID 759s -- ---- 759s v_no_id := public.getLocalNodeId('_main'); 759s 759s -- ---- 759s -- Get the sl_table row and the current tables origin. 759s -- ---- 759s select T.tab_reloid, T.tab_set, 759s S.set_origin, PGX.indexrelid, 759s public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) as tab_fqname 759s into v_tab_row 759s from public.sl_table T, public.sl_set S, 759s "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN, 759s "pg_catalog".pg_index PGX, "pg_catalog".pg_class PGXC 759s where T.tab_id = p_tab_id 759s and T.tab_set = S.set_id 759s and T.tab_reloid = PGC.oid 759s and PGC.relnamespace = PGN.oid 759s and PGX.indrelid = T.tab_reloid 759s and PGX.indexrelid = PGXC.oid 759s and PGXC.relname = T.tab_idxname 759s for update; 759s if not found then 759s raise exception 'Slony-I: alterTableConfigureTriggers(): Table with id % not found', p_tab_id; 759s end if; 759s v_tab_fqname = v_tab_row.tab_fqname; 759s 759s -- ---- 759s -- Configuration depends on the origin of the table 759s -- ---- 759s if v_tab_row.set_origin = v_no_id then 759s -- ---- 759s -- On the origin the log trigger is configured like a default 759s -- user trigger and the deny access trigger is disabled. 759s -- ---- 759s execute 'alter table ' || v_tab_fqname || 759s ' enable trigger "_main_logtrigger"'; 759s execute 'alter table ' || v_tab_fqname || 759s ' disable trigger "_main_denyaccess"'; 759s perform public.alterTableConfigureTruncateTrigger(v_tab_fqname, 759s 'enable', 'disable'); 759s else 759s -- ---- 759s -- On a replica the log trigger is disabled and the 759s -- deny access trigger fires in origin session role. 759s -- ---- 759s execute 'alter table ' || v_tab_fqname || 759s ' disable trigger "_main_logtrigger"'; 759s execute 'alter table ' || v_tab_fqname || 759s ' enable trigger "_main_denyaccess"'; 759s perform public.alterTableConfigureTruncateTrigger(v_tab_fqname, 759s 'disable', 'enable'); 759s 759s end if; 759s 759s return p_tab_id; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.alterTableConfigureTriggers (p_tab_id int4) is 759s 'alterTableConfigureTriggers (tab_id) 759s 759s Set the enable/disable configuration for the replication triggers 759s according to the origin of the set.'; 759s COMMENT 759s create or replace function public.resubscribeNode (p_origin int4, 759s p_provider int4, p_receiver int4) 759s returns bigint 759s as $$ 759s declare 759s v_record record; 759s v_missing_sets text; 759s v_ev_seqno bigint; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- 759s -- Check that the receiver exists 759s -- 759s if not exists (select no_id from public.sl_node where no_id= 759s p_receiver) then 759s raise exception 'Slony-I: subscribeSet() receiver % does not exist' , p_receiver; 759s end if; 759s 759s -- 759s -- Check that the provider exists 759s -- 759s if not exists (select no_id from public.sl_node where no_id= 759s p_provider) then 759s raise exception 'Slony-I: subscribeSet() provider % does not exist' , p_provider; 759s end if; 759s 759s 759s -- ---- 759s -- Check that this is called on the origin node 759s -- ---- 759s if p_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: subscribeSet() must be called on origin'; 759s end if; 759s 759s -- --- 759s -- Verify that the provider is either the origin or an active subscriber 759s -- Bug report #1362 759s -- --- 759s if p_origin <> p_provider then 759s for v_record in select sub1.sub_set from 759s public.sl_subscribe sub1 759s left outer join (public.sl_subscribe sub2 759s inner join 759s public.sl_set on ( 759s sl_set.set_id=sub2.sub_set 759s and sub2.sub_set=p_origin) 759s ) 759s ON ( sub1.sub_set = sub2.sub_set and 759s sub1.sub_receiver = p_provider and 759s sub1.sub_forward and sub1.sub_active 759s and sub2.sub_receiver=p_receiver) 759s 759s where sub2.sub_set is null 759s loop 759s v_missing_sets=v_missing_sets || ' ' || v_record.sub_set; 759s end loop; 759s if v_missing_sets is not null then 759s raise exception 'Slony-I: subscribeSet(): provider % is not an active forwarding node for replication set %', p_sub_provider, v_missing_sets; 759s end if; 759s end if; 759s 759s for v_record in select * from 759s public.sl_subscribe, public.sl_set where 759s sub_set=set_id and 759s sub_receiver=p_receiver 759s and set_origin=p_origin 759s loop 759s -- ---- 759s -- Create the SUBSCRIBE_SET event 759s -- ---- 759s v_ev_seqno := public.createEvent('_main', 'SUBSCRIBE_SET', 759s v_record.sub_set::text, p_provider::text, p_receiver::text, 759s case v_record.sub_forward when true then 't' else 'f' end, 759s 'f' ); 759s 759s -- ---- 759s -- Call the internal procedure to store the subscription 759s -- ---- 759s perform public.subscribeSet_int(v_record.sub_set, 759s p_provider, 759s p_receiver, v_record.sub_forward, false); 759s end loop; 759s 759s return v_ev_seqno; 759s end; 759s $$ 759s language plpgsql; 759s CREATE FUNCTION 759s create or replace function public.subscribeSet (p_sub_set int4, p_sub_provider int4, p_sub_receiver int4, p_sub_forward bool, p_omit_copy bool) 759s returns bigint 759s as $$ 759s declare 759s v_set_origin int4; 759s v_ev_seqno int8; 759s v_ev_seqno2 int8; 759s v_rec record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- 759s -- Check that the receiver exists 759s -- 759s if not exists (select no_id from public.sl_node where no_id= 759s p_sub_receiver) then 759s raise exception 'Slony-I: subscribeSet() receiver % does not exist' , p_sub_receiver; 759s end if; 759s 759s -- 759s -- Check that the provider exists 759s -- 759s if not exists (select no_id from public.sl_node where no_id= 759s p_sub_provider) then 759s raise exception 'Slony-I: subscribeSet() provider % does not exist' , p_sub_provider; 759s end if; 759s 759s -- ---- 759s -- Check that the origin and provider of the set are remote 759s -- ---- 759s select set_origin into v_set_origin 759s from public.sl_set 759s where set_id = p_sub_set; 759s if not found then 759s raise exception 'Slony-I: subscribeSet(): set % not found', p_sub_set; 759s end if; 759s if v_set_origin = p_sub_receiver then 759s raise exception 759s 'Slony-I: subscribeSet(): set origin and receiver cannot be identical'; 759s end if; 759s if p_sub_receiver = p_sub_provider then 759s raise exception 759s 'Slony-I: subscribeSet(): set provider and receiver cannot be identical'; 759s end if; 759s -- ---- 759s -- Check that this is called on the origin node 759s -- ---- 759s if v_set_origin != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: subscribeSet() must be called on origin'; 759s end if; 759s 759s -- --- 759s -- Verify that the provider is either the origin or an active subscriber 759s -- Bug report #1362 759s -- --- 759s if v_set_origin <> p_sub_provider then 759s if not exists (select 1 from public.sl_subscribe 759s where sub_set = p_sub_set and 759s sub_receiver = p_sub_provider and 759s sub_forward and sub_active) then 759s raise exception 'Slony-I: subscribeSet(): provider % is not an active forwarding node for replication set %', p_sub_provider, p_sub_set; 759s end if; 759s end if; 759s 759s -- --- 759s -- Enforce that all sets from one origin are subscribed 759s -- using the same data provider per receiver. 759s -- ---- 759s if not exists (select 1 from public.sl_subscribe 759s where sub_set = p_sub_set and sub_receiver = p_sub_receiver) then 759s -- 759s -- New subscription - error out if we have any other subscription 759s -- from that origin with a different data provider. 759s -- 759s for v_rec in select sub_provider from public.sl_subscribe 759s join public.sl_set on set_id = sub_set 759s where set_origin = v_set_origin and sub_receiver = p_sub_receiver 759s loop 759s if v_rec.sub_provider <> p_sub_provider then 759s raise exception 'Slony-I: subscribeSet(): wrong provider % - existing subscription from origin % users provider %', 759s p_sub_provider, v_set_origin, v_rec.sub_provider; 759s end if; 759s end loop; 759s else 759s -- 759s -- Existing subscription - in case the data provider changes and 759s -- there are other subscriptions, warn here. subscribeSet_int() 759s -- will currently change the data provider for those sets as well. 759s -- 759s for v_rec in select set_id, sub_provider from public.sl_subscribe 759s join public.sl_set on set_id = sub_set 759s where set_origin = v_set_origin and sub_receiver = p_sub_receiver 759s and set_id <> p_sub_set 759s loop 759s if v_rec.sub_provider <> p_sub_provider then 759s raise exception 'Slony-I: subscribeSet(): also data provider for set % use resubscribe instead', 759s v_rec.set_id; 759s end if; 759s end loop; 759s end if; 759s 759s -- ---- 759s -- Create the SUBSCRIBE_SET event 759s -- ---- 759s v_ev_seqno := public.createEvent('_main', 'SUBSCRIBE_SET', 759s p_sub_set::text, p_sub_provider::text, p_sub_receiver::text, 759s case p_sub_forward when true then 't' else 'f' end, 759s case p_omit_copy when true then 't' else 'f' end 759s ); 759s 759s -- ---- 759s -- Call the internal procedure to store the subscription 759s -- ---- 759s v_ev_seqno2:=public.subscribeSet_int(p_sub_set, p_sub_provider, 759s p_sub_receiver, p_sub_forward, p_omit_copy); 759s 759s if v_ev_seqno2 is not null then 759s v_ev_seqno:=v_ev_seqno2; 759s end if; 759s 759s return v_ev_seqno; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.subscribeSet (p_sub_set int4, p_sub_provider int4, p_sub_receiver int4, p_sub_forward bool, p_omit_copy bool) is 759s 'subscribeSet (sub_set, sub_provider, sub_receiver, sub_forward, omit_copy) 759s 759s Makes sure that the receiver is not the provider, then stores the 759s subscription, and publishes the SUBSCRIBE_SET event to other nodes. 759s 759s If omit_copy is true, then no data copy will be done. 759s '; 759s COMMENT 759s DROP FUNCTION IF EXISTS public.subscribeSet_int(int4,int4,int4,bool,bool); 759s DROP FUNCTION 759s create or replace function public.subscribeSet_int (p_sub_set int4, p_sub_provider int4, p_sub_receiver int4, p_sub_forward bool, p_omit_copy bool) 759s returns int4 759s as $$ 759s declare 759s v_set_origin int4; 759s v_sub_row record; 759s v_seq_id bigint; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Lookup the set origin 759s -- ---- 759s select set_origin into v_set_origin 759s from public.sl_set 759s where set_id = p_sub_set; 759s if not found then 759s raise exception 'Slony-I: subscribeSet_int(): set % not found', p_sub_set; 759s end if; 759s 759s -- ---- 759s -- Provider change is only allowed for active sets 759s -- ---- 759s if p_sub_receiver = public.getLocalNodeId('_main') then 759s select sub_active into v_sub_row from public.sl_subscribe 759s where sub_set = p_sub_set 759s and sub_receiver = p_sub_receiver; 759s if found then 759s if not v_sub_row.sub_active then 759s raise exception 'Slony-I: subscribeSet_int(): set % is not active, cannot change provider', 759s p_sub_set; 759s end if; 759s end if; 759s end if; 759s 759s -- ---- 759s -- Try to change provider and/or forward for an existing subscription 759s -- ---- 759s update public.sl_subscribe 759s set sub_provider = p_sub_provider, 759s sub_forward = p_sub_forward 759s where sub_set = p_sub_set 759s and sub_receiver = p_sub_receiver; 759s if found then 759s 759s -- ---- 759s -- This is changing a subscriptoin. Make sure all sets from 759s -- this origin are subscribed using the same data provider. 759s -- For this we first check that the requested data provider 759s -- is subscribed to all the sets, the receiver is subscribed to. 759s -- ---- 759s for v_sub_row in select set_id from public.sl_set 759s join public.sl_subscribe on set_id = sub_set 759s where set_origin = v_set_origin 759s and sub_receiver = p_sub_receiver 759s and sub_set <> p_sub_set 759s loop 759s if not exists (select 1 from public.sl_subscribe 759s where sub_set = v_sub_row.set_id 759s and sub_receiver = p_sub_provider 759s and sub_active and sub_forward) 759s and not exists (select 1 from public.sl_set 759s where set_id = v_sub_row.set_id 759s and set_origin = p_sub_provider) 759s then 759s raise exception 'Slony-I: subscribeSet_int(): node % is not a forwarding subscriber for set %', 759s p_sub_provider, v_sub_row.set_id; 759s end if; 759s 759s -- ---- 759s -- New data provider offers this set as well, change that 759s -- subscription too. 759s -- ---- 759s update public.sl_subscribe 759s set sub_provider = p_sub_provider 759s where sub_set = v_sub_row.set_id 759s and sub_receiver = p_sub_receiver; 759s end loop; 759s 759s -- ---- 759s -- Rewrite sl_listen table 759s -- ---- 759s perform public.RebuildListenEntries(); 759s 759s return p_sub_set; 759s end if; 759s 759s -- ---- 759s -- Not found, insert a new one 759s -- ---- 759s if not exists (select true from public.sl_path 759s where pa_server = p_sub_provider 759s and pa_client = p_sub_receiver) 759s then 759s insert into public.sl_path 759s (pa_server, pa_client, pa_conninfo, pa_connretry) 759s values 759s (p_sub_provider, p_sub_receiver, 759s '', 10); 759s end if; 759s insert into public.sl_subscribe 759s (sub_set, sub_provider, sub_receiver, sub_forward, sub_active) 759s values (p_sub_set, p_sub_provider, p_sub_receiver, 759s p_sub_forward, false); 759s 759s -- ---- 759s -- If the set origin is here, then enable the subscription 759s -- ---- 759s if v_set_origin = public.getLocalNodeId('_main') then 759s select public.createEvent('_main', 'ENABLE_SUBSCRIPTION', 759s p_sub_set::text, p_sub_provider::text, p_sub_receiver::text, 759s case p_sub_forward when true then 't' else 'f' end, 759s case p_omit_copy when true then 't' else 'f' end 759s ) into v_seq_id; 759s perform public.enableSubscription(p_sub_set, 759s p_sub_provider, p_sub_receiver); 759s end if; 759s 759s -- ---- 759s -- Rewrite sl_listen table 759s -- ---- 759s perform public.RebuildListenEntries(); 759s 759s return p_sub_set; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.subscribeSet_int (p_sub_set int4, p_sub_provider int4, p_sub_receiver int4, p_sub_forward bool, p_omit_copy bool) is 759s 'subscribeSet_int (sub_set, sub_provider, sub_receiver, sub_forward, omit_copy) 759s 759s Internal actions for subscribing receiver sub_receiver to subscription 759s set sub_set.'; 759s COMMENT 759s drop function IF EXISTS public.unsubscribeSet(int4,int4,boolean); 759s DROP FUNCTION 759s create or replace function public.unsubscribeSet (p_sub_set int4, p_sub_receiver int4,p_force boolean) 759s returns bigint 759s as $$ 759s declare 759s v_tab_row record; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- Check that this is called on the receiver node 759s -- ---- 759s if p_sub_receiver != public.getLocalNodeId('_main') then 759s raise exception 'Slony-I: unsubscribeSet() must be called on receiver'; 759s end if; 759s 759s 759s 759s -- ---- 759s -- Check that this does not break any chains 759s -- ---- 759s if p_force=false and exists (select true from public.sl_subscribe 759s where sub_set = p_sub_set 759s and sub_provider = p_sub_receiver) 759s then 759s raise exception 'Slony-I: Cannot unsubscribe set % while being provider', 759s p_sub_set; 759s end if; 759s 759s if exists (select true from public.sl_subscribe 759s where sub_set = p_sub_set 759s and sub_provider = p_sub_receiver) 759s then 759s --delete the receivers of this provider. 759s --unsubscribeSet_int() will generate the event 759s --when it runs on the receiver. 759s delete from public.sl_subscribe 759s where sub_set=p_sub_set 759s and sub_provider=p_sub_receiver; 759s end if; 759s 759s -- ---- 759s -- Remove the replication triggers. 759s -- ---- 759s for v_tab_row in select tab_id from public.sl_table 759s where tab_set = p_sub_set 759s order by tab_id 759s loop 759s perform public.alterTableDropTriggers(v_tab_row.tab_id); 759s end loop; 759s 759s -- ---- 759s -- Remove the setsync status. This will also cause the 759s -- worker thread to ignore the set and stop replicating 759s -- right now. 759s -- ---- 759s delete from public.sl_setsync 759s where ssy_setid = p_sub_set; 759s 759s -- ---- 759s -- Remove all sl_table and sl_sequence entries for this set. 759s -- Should we ever subscribe again, the initial data 759s -- copy process will create new ones. 759s -- ---- 759s delete from public.sl_table 759s where tab_set = p_sub_set; 759s delete from public.sl_sequence 759s where seq_set = p_sub_set; 759s 759s -- ---- 759s -- Call the internal procedure to drop the subscription 759s -- ---- 759s perform public.unsubscribeSet_int(p_sub_set, p_sub_receiver); 759s 759s -- Rewrite sl_listen table 759s perform public.RebuildListenEntries(); 759s 759s -- ---- 759s -- Create the UNSUBSCRIBE_SET event 759s -- ---- 759s return public.createEvent('_main', 'UNSUBSCRIBE_SET', 759s p_sub_set::text, p_sub_receiver::text); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.unsubscribeSet (p_sub_set int4, p_sub_receiver int4,force boolean) is 759s 'unsubscribeSet (sub_set, sub_receiver,force) 759s 759s Unsubscribe node sub_receiver from subscription set sub_set. This is 759s invoked on the receiver node. It verifies that this does not break 759s any chains (e.g. - where sub_receiver is a provider for another node), 759s then restores tables, drops Slony-specific keys, drops table entries 759s for the set, drops the subscription, and generates an UNSUBSCRIBE_SET 759s node to publish that the node is being dropped.'; 759s COMMENT 759s create or replace function public.unsubscribeSet_int (p_sub_set int4, p_sub_receiver int4) 759s returns int4 759s as $$ 759s declare 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- All the real work is done before event generation on the 759s -- subscriber. 759s -- ---- 759s 759s --if this event unsubscribes the provider of this node 759s --then this node should unsubscribe itself from the set as well. 759s 759s if exists (select true from 759s public.sl_subscribe where 759s sub_set=p_sub_set and sub_provider=p_sub_receiver 759s and sub_receiver=public.getLocalNodeId('_main')) 759s then 759s perform public.unsubscribeSet(p_sub_set,public.getLocalNodeId('_main'),true); 759s end if; 759s 759s 759s delete from public.sl_subscribe 759s where sub_set = p_sub_set 759s and sub_receiver = p_sub_receiver; 759s 759s -- Rewrite sl_listen table 759s perform public.RebuildListenEntries(); 759s 759s return p_sub_set; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.unsubscribeSet_int (p_sub_set int4, p_sub_receiver int4) is 759s 'unsubscribeSet_int (sub_set, sub_receiver) 759s 759s All the REAL work of removing the subscriber is done before the event 759s is generated, so this function just has to drop the references to the 759s subscription in sl_subscribe.'; 759s COMMENT 759s create or replace function public.enableSubscription (p_sub_set int4, p_sub_provider int4, p_sub_receiver int4) 759s returns int4 759s as $$ 759s begin 759s return public.enableSubscription_int (p_sub_set, 759s p_sub_provider, p_sub_receiver); 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.enableSubscription (p_sub_set int4, p_sub_provider int4, p_sub_receiver int4) is 759s 'enableSubscription (sub_set, sub_provider, sub_receiver) 759s 759s Indicates that sub_receiver intends subscribing to set sub_set from 759s sub_provider. Work is all done by the internal function 759s enableSubscription_int (sub_set, sub_provider, sub_receiver).'; 759s COMMENT 759s create or replace function public.enableSubscription_int (p_sub_set int4, p_sub_provider int4, p_sub_receiver int4) 759s returns int4 759s as $$ 759s declare 759s v_n int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- ---- 759s -- The real work is done in the replication engine. All 759s -- we have to do here is remembering that it happened. 759s -- ---- 759s 759s -- ---- 759s -- Well, not only ... we might be missing an important event here 759s -- ---- 759s if not exists (select true from public.sl_path 759s where pa_server = p_sub_provider 759s and pa_client = p_sub_receiver) 759s then 759s insert into public.sl_path 759s (pa_server, pa_client, pa_conninfo, pa_connretry) 759s values 759s (p_sub_provider, p_sub_receiver, 759s '', 10); 759s end if; 759s 759s update public.sl_subscribe 759s set sub_active = 't' 759s where sub_set = p_sub_set 759s and sub_receiver = p_sub_receiver; 759s get diagnostics v_n = row_count; 759s if v_n = 0 then 759s insert into public.sl_subscribe 759s (sub_set, sub_provider, sub_receiver, 759s sub_forward, sub_active) 759s values 759s (p_sub_set, p_sub_provider, p_sub_receiver, 759s false, true); 759s end if; 759s 759s -- Rewrite sl_listen table 759s perform public.RebuildListenEntries(); 759s 759s return p_sub_set; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.enableSubscription_int (p_sub_set int4, p_sub_provider int4, p_sub_receiver int4) is 759s 'enableSubscription_int (sub_set, sub_provider, sub_receiver) 759s 759s Internal function to enable subscription of node sub_receiver to set 759s sub_set via node sub_provider. 759s 759s slon does most of the work; all we need do here is to remember that it 759s happened. The function updates sl_subscribe, indicating that the 759s subscription has become active.'; 759s COMMENT 759s create or replace function public.forwardConfirm (p_con_origin int4, p_con_received int4, p_con_seqno int8, p_con_timestamp timestamp) 759s returns bigint 759s as $$ 759s declare 759s v_max_seqno bigint; 759s begin 759s select into v_max_seqno coalesce(max(con_seqno), 0) 759s from public.sl_confirm 759s where con_origin = p_con_origin 759s and con_received = p_con_received; 759s if v_max_seqno < p_con_seqno then 759s insert into public.sl_confirm 759s (con_origin, con_received, con_seqno, con_timestamp) 759s values (p_con_origin, p_con_received, p_con_seqno, 759s p_con_timestamp); 759s v_max_seqno = p_con_seqno; 759s end if; 759s 759s return v_max_seqno; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.forwardConfirm (p_con_origin int4, p_con_received int4, p_con_seqno int8, p_con_timestamp timestamp) is 759s 'forwardConfirm (p_con_origin, p_con_received, p_con_seqno, p_con_timestamp) 759s 759s Confirms (recorded in sl_confirm) that items from p_con_origin up to 759s p_con_seqno have been received by node p_con_received as of 759s p_con_timestamp, and raises an event to forward this confirmation.'; 759s COMMENT 759s create NOTICE: function public.subscribeset_int(int4,int4,int4,bool,bool) does not exist, skipping 759s NOTICE: function public.unsubscribeset(int4,int4,pg_catalog.bool) does not exist, skipping 759s NOTICE: function public.updaterelname(int4,int4) does not exist, skipping 759s NOTICE: function public.updatereloid(int4,int4) does not exist, skipping 759s or replace function public.cleanupEvent (p_interval interval) 759s returns int4 759s as $$ 759s declare 759s v_max_row record; 759s v_min_row record; 759s v_max_sync int8; 759s v_origin int8; 759s v_seqno int8; 759s v_xmin bigint; 759s v_rc int8; 759s begin 759s -- ---- 759s -- First remove all confirmations where origin/receiver no longer exist 759s -- ---- 759s delete from public.sl_confirm 759s where con_origin not in (select no_id from public.sl_node); 759s delete from public.sl_confirm 759s where con_received not in (select no_id from public.sl_node); 759s -- ---- 759s -- Next remove all but the oldest confirm row per origin,receiver pair. 759s -- Ignore confirmations that are younger than 10 minutes. We currently 759s -- have an not confirmed suspicion that a possibly lost transaction due 759s -- to a server crash might have been visible to another session, and 759s -- that this led to log data that is needed again got removed. 759s -- ---- 759s for v_max_row in select con_origin, con_received, max(con_seqno) as con_seqno 759s from public.sl_confirm 759s where con_timestamp < (CURRENT_TIMESTAMP - p_interval) 759s group by con_origin, con_received 759s loop 759s delete from public.sl_confirm 759s where con_origin = v_max_row.con_origin 759s and con_received = v_max_row.con_received 759s and con_seqno < v_max_row.con_seqno; 759s end loop; 759s 759s -- ---- 759s -- Then remove all events that are confirmed by all nodes in the 759s -- whole cluster up to the last SYNC 759s -- ---- 759s for v_min_row in select con_origin, min(con_seqno) as con_seqno 759s from public.sl_confirm 759s group by con_origin 759s loop 759s select coalesce(max(ev_seqno), 0) into v_max_sync 759s from public.sl_event 759s where ev_origin = v_min_row.con_origin 759s and ev_seqno <= v_min_row.con_seqno 759s and ev_type = 'SYNC'; 759s if v_max_sync > 0 then 759s delete from public.sl_event 759s where ev_origin = v_min_row.con_origin 759s and ev_seqno < v_max_sync; 759s end if; 759s end loop; 759s 759s -- ---- 759s -- If cluster has only one node, then remove all events up to 759s -- the last SYNC - Bug #1538 759s -- http://gborg.postgresql.org/project/slony1/bugs/bugupdate.php?1538 759s -- ---- 759s 759s select * into v_min_row from public.sl_node where 759s no_id <> public.getLocalNodeId('_main') limit 1; 759s if not found then 759s select ev_origin, ev_seqno into v_min_row from public.sl_event 759s where ev_origin = public.getLocalNodeId('_main') 759s order by ev_origin desc, ev_seqno desc limit 1; 759s raise notice 'Slony-I: cleanupEvent(): Single node - deleting events < %', v_min_row.ev_seqno; 759s delete from public.sl_event 759s where 759s ev_origin = v_min_row.ev_origin and 759s ev_seqno < v_min_row.ev_seqno; 759s 759s end if; 759s 759s if exists (select * from "pg_catalog".pg_class c, "pg_catalog".pg_namespace n, "pg_catalog".pg_attribute a where c.relname = 'sl_seqlog' and n.oid = c.relnamespace and a.attrelid = c.oid and a.attname = 'oid') then 759s execute 'alter table public.sl_seqlog set without oids;'; 759s end if; 759s -- ---- 759s -- Also remove stale entries from the nodelock table. 759s -- ---- 759s perform public.cleanupNodelock(); 759s 759s -- ---- 759s -- Find the eldest event left, for each origin 759s -- ---- 759s for v_origin, v_seqno, v_xmin in 759s select ev_origin, ev_seqno, "pg_catalog".txid_snapshot_xmin(ev_snapshot) from public.sl_event 759s where (ev_origin, ev_seqno) in (select ev_origin, min(ev_seqno) from public.sl_event where ev_type = 'SYNC' group by ev_origin) 759s loop 759s delete from public.sl_seqlog where seql_origin = v_origin and seql_ev_seqno < v_seqno; 759s delete from public.sl_log_script where log_origin = v_origin and log_txid < v_xmin; 759s end loop; 759s 759s v_rc := public.logswitch_finish(); 759s if v_rc = 0 then -- no switch in progress 759s perform public.logswitch_start(); 759s end if; 759s 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.cleanupEvent (p_interval interval) is 759s 'cleaning old data out of sl_confirm, sl_event. Removes all but the 759s last sl_confirm row per (origin,receiver), and then removes all events 759s that are confirmed by all nodes in the whole cluster up to the last 759s SYNC.'; 759s COMMENT 759s create or replace function public.determineIdxnameUnique(p_tab_fqname text, p_idx_name name) returns name 759s as $$ 759s declare 759s v_tab_fqname_quoted text default ''; 759s v_idxrow record; 759s begin 759s v_tab_fqname_quoted := public.slon_quote_input(p_tab_fqname); 759s -- 759s -- Ensure that the table exists 759s -- 759s if (select PGC.relname 759s from "pg_catalog".pg_class PGC, 759s "pg_catalog".pg_namespace PGN 759s where public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) = v_tab_fqname_quoted 759s and PGN.oid = PGC.relnamespace) is null then 759s raise exception 'Slony-I: determineIdxnameUnique(): table % not found', v_tab_fqname_quoted; 759s end if; 759s 759s -- 759s -- Lookup the tables primary key or the specified unique index 759s -- 759s if p_idx_name isnull then 759s select PGXC.relname 759s into v_idxrow 759s from "pg_catalog".pg_class PGC, 759s "pg_catalog".pg_namespace PGN, 759s "pg_catalog".pg_index PGX, 759s "pg_catalog".pg_class PGXC 759s where public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) = v_tab_fqname_quoted 759s and PGN.oid = PGC.relnamespace 759s and PGX.indrelid = PGC.oid 759s and PGX.indexrelid = PGXC.oid 759s and PGX.indisprimary; 759s if not found then 759s raise exception 'Slony-I: table % has no primary key', 759s v_tab_fqname_quoted; 759s end if; 759s else 759s select PGXC.relname 759s into v_idxrow 759s from "pg_catalog".pg_class PGC, 759s "pg_catalog".pg_namespace PGN, 759s "pg_catalog".pg_index PGX, 759s "pg_catalog".pg_class PGXC 759s where public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) = v_tab_fqname_quoted 759s and PGN.oid = PGC.relnamespace 759s and PGX.indrelid = PGC.oid 759s and PGX.indexrelid = PGXC.oid 759s and PGX.indisunique 759s and public.slon_quote_brute(PGXC.relname) = public.slon_quote_input(p_idx_name); 759s if not found then 759s raise exception 'Slony-I: table % has no unique index %', 759s v_tab_fqname_quoted, p_idx_name; 759s end if; 759s end if; 759s 759s -- 759s -- Return the found index name 759s -- 759s return v_idxrow.relname; 759s end; 759s $$ language plpgsql called on null input; 759s CREATE FUNCTION 759s comment on function public.determineIdxnameUnique(p_tab_fqname text, p_idx_name name) is 759s 'FUNCTION determineIdxnameUnique (tab_fqname, indexname) 759s 759s Given a tablename, tab_fqname, check that the unique index, indexname, 759s exists or return the primary key index name for the table. If there 759s is no unique index, it raises an exception.'; 759s COMMENT 759s create or replace function public.determineAttkindUnique(p_tab_fqname text, p_idx_name name) returns text 759s as $$ 759s declare 759s v_tab_fqname_quoted text default ''; 759s v_idx_name_quoted text; 759s v_idxrow record; 759s v_attrow record; 759s v_i integer; 759s v_attno int2; 759s v_attkind text default ''; 759s v_attfound bool; 759s begin 759s v_tab_fqname_quoted := public.slon_quote_input(p_tab_fqname); 759s v_idx_name_quoted := public.slon_quote_brute(p_idx_name); 759s -- 759s -- Ensure that the table exists 759s -- 759s if (select PGC.relname 759s from "pg_catalog".pg_class PGC, 759s "pg_catalog".pg_namespace PGN 759s where public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) = v_tab_fqname_quoted 759s and PGN.oid = PGC.relnamespace) is null then 759s raise exception 'Slony-I: table % not found', v_tab_fqname_quoted; 759s end if; 759s 759s -- 759s -- Lookup the tables primary key or the specified unique index 759s -- 759s if p_idx_name isnull then 759s raise exception 'Slony-I: index name must be specified'; 759s else 759s select PGXC.relname, PGX.indexrelid, PGX.indkey 759s into v_idxrow 759s from "pg_catalog".pg_class PGC, 759s "pg_catalog".pg_namespace PGN, 759s "pg_catalog".pg_index PGX, 759s "pg_catalog".pg_class PGXC 759s where public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) = v_tab_fqname_quoted 759s and PGN.oid = PGC.relnamespace 759s and PGX.indrelid = PGC.oid 759s and PGX.indexrelid = PGXC.oid 759s and PGX.indisunique 759s and public.slon_quote_brute(PGXC.relname) = v_idx_name_quoted; 759s if not found then 759s raise exception 'Slony-I: table % has no unique index %', 759s v_tab_fqname_quoted, v_idx_name_quoted; 759s end if; 759s end if; 759s 759s -- 759s -- Loop over the tables attributes and check if they are 759s -- index attributes. If so, add a "k" to the return value, 759s -- otherwise add a "v". 759s -- 759s for v_attrow in select PGA.attnum, PGA.attname 759s from "pg_catalog".pg_class PGC, 759s "pg_catalog".pg_namespace PGN, 759s "pg_catalog".pg_attribute PGA 759s where public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) = v_tab_fqname_quoted 759s and PGN.oid = PGC.relnamespace 759s and PGA.attrelid = PGC.oid 759s and not PGA.attisdropped 759s and PGA.attnum > 0 759s order by attnum 759s loop 759s v_attfound = 'f'; 759s 759s v_i := 0; 759s loop 759s select indkey[v_i] into v_attno from "pg_catalog".pg_index 759s where indexrelid = v_idxrow.indexrelid; 759s if v_attno isnull or v_attno = 0 then 759s exit; 759s end if; 759s if v_attrow.attnum = v_attno then 759s v_attfound = 't'; 759s exit; 759s end if; 759s v_i := v_i + 1; 759s end loop; 759s 759s if v_attfound then 759s v_attkind := v_attkind || 'k'; 759s else 759s v_attkind := v_attkind || 'v'; 759s end if; 759s end loop; 759s 759s -- Strip off trailing v characters as they are not needed by the logtrigger 759s v_attkind := pg_catalog.rtrim(v_attkind, 'v'); 759s 759s -- 759s -- Return the resulting attkind 759s -- 759s return v_attkind; 759s end; 759s $$ language plpgsql called on null input; 759s CREATE FUNCTION 759s comment on function public.determineAttkindUnique(p_tab_fqname text, p_idx_name name) is 759s 'determineAttKindUnique (tab_fqname, indexname) 759s 759s Given a tablename, return the Slony-I specific attkind (used for the 759s log trigger) of the table. Use the specified unique index or the 759s primary key (if indexname is NULL).'; 759s COMMENT 759s create or replace function public.RebuildListenEntries() 759s returns int 759s as $$ 759s declare 759s v_row record; 759s v_cnt integer; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s -- First remove the entire configuration 759s delete from public.sl_listen; 759s 759s -- Second populate the sl_listen configuration with a full 759s -- network of all possible paths. 759s insert into public.sl_listen 759s (li_origin, li_provider, li_receiver) 759s select pa_server, pa_server, pa_client from public.sl_path; 759s while true loop 759s insert into public.sl_listen 759s (li_origin, li_provider, li_receiver) 759s select distinct li_origin, pa_server, pa_client 759s from public.sl_listen, public.sl_path 759s where li_receiver = pa_server 759s and li_origin <> pa_client 759s and pa_conninfo<>'' 759s except 759s select li_origin, li_provider, li_receiver 759s from public.sl_listen; 759s 759s if not found then 759s exit; 759s end if; 759s end loop; 759s 759s -- We now replace specific event-origin,receiver combinations 759s -- with a configuration that tries to avoid events arriving at 759s -- a node before the data provider actually has the data ready. 759s 759s -- Loop over every possible pair of receiver and event origin 759s for v_row in select N1.no_id as receiver, N2.no_id as origin, 759s N2.no_failed as failed 759s from public.sl_node as N1, public.sl_node as N2 759s where N1.no_id <> N2.no_id 759s loop 759s -- 1st choice: 759s -- If we use the event origin as a data provider for any 759s -- set that originates on that very node, we are a direct 759s -- subscriber to that origin and listen there only. 759s if exists (select true from public.sl_set, public.sl_subscribe , public.sl_node p 759s where set_origin = v_row.origin 759s and sub_set = set_id 759s and sub_provider = v_row.origin 759s and sub_receiver = v_row.receiver 759s and sub_active 759s and p.no_active 759s and p.no_id=sub_provider 759s ) 759s then 759s delete from public.sl_listen 759s where li_origin = v_row.origin 759s and li_receiver = v_row.receiver; 759s insert into public.sl_listen (li_origin, li_provider, li_receiver) 759s values (v_row.origin, v_row.origin, v_row.receiver); 759s 759s -- 2nd choice: 759s -- If we are subscribed to any set originating on this 759s -- event origin, we want to listen on all data providers 759s -- we use for this origin. We are a cascaded subscriber 759s -- for sets from this node. 759s else 759s if exists (select true from public.sl_set, public.sl_subscribe, 759s public.sl_node provider 759s where set_origin = v_row.origin 759s and sub_set = set_id 759s and sub_provider=provider.no_id 759s and provider.no_failed = false 759s and sub_receiver = v_row.receiver 759s and sub_active) 759s then 759s delete from public.sl_listen 759s where li_origin = v_row.origin 759s and li_receiver = v_row.receiver; 759s insert into public.sl_listen (li_origin, li_provider, li_receiver) 759s select distinct set_origin, sub_provider, v_row.receiver 759s from public.sl_set, public.sl_subscribe 759s where set_origin = v_row.origin 759s and sub_set = set_id 759s and sub_receiver = v_row.receiver 759s and sub_active; 759s end if; 759s end if; 759s 759s if v_row.failed then 759s 759s --for every failed node we delete all sl_listen entries 759s --except via providers (listed in sl_subscribe) 759s --or failover candidates (sl_failover_targets) 759s --we do this to prevent a non-failover candidate 759s --that is more ahead of the failover candidate from 759s --sending events to the failover candidate that 759s --are 'too far ahead' 759s 759s --if the failed node is not an origin for any 759s --node then we don't delete all listen paths 759s --for events from it. Instead we leave 759s --the listen network alone. 759s 759s select count(*) into v_cnt from public.sl_subscribe sub, 759s public.sl_set s 759s where s.set_origin=v_row.origin and s.set_id=sub.sub_set; 759s if v_cnt > 0 then 759s delete from public.sl_listen where 759s li_origin=v_row.origin and 759s li_receiver=v_row.receiver 759s and li_provider not in 759s (select sub_provider from 759s public.sl_subscribe, 759s public.sl_set where 759s sub_set=set_id 759s and set_origin=v_row.origin); 759s end if; 759s end if; 759s -- insert into public.sl_listen 759s -- (li_origin,li_provider,li_receiver) 759s -- SELECT v_row.origin, pa_server 759s -- ,v_row.receiver 759s -- FROM public.sl_path where 759s -- pa_client=v_row.receiver 759s -- and (v_row.origin,pa_server,v_row.receiver) not in 759s -- (select li_origin,li_provider,li_receiver 759s -- from public.sl_listen); 759s -- end if; 759s end loop ; 759s 759s return null ; 759s end ; 759s $$ language 'plpgsql'; 759s CREATE FUNCTION 759s comment on function public.RebuildListenEntries() is 759s 'RebuildListenEntries() 759s 759s Invoked by various subscription and path modifying functions, this 759s rewrites the sl_listen entries, adding in all the ones required to 759s allow communications between nodes in the Slony-I cluster.'; 759s COMMENT 759s create or replace function public.generate_sync_event(p_interval interval) 759s returns int4 759s as $$ 759s declare 759s v_node_row record; 759s 759s BEGIN 759s select 1 into v_node_row from public.sl_event 759s where ev_type = 'SYNC' and ev_origin = public.getLocalNodeId('_main') 759s and ev_timestamp > now() - p_interval limit 1; 759s if not found then 759s -- If there has been no SYNC in the last interval, then push one 759s perform public.createEvent('_main', 'SYNC', NULL); 759s return 1; 759s else 759s return 0; 759s end if; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.generate_sync_event(p_interval interval) is 759s 'Generate a sync event if there has not been one in the requested interval, and this is a provider node.'; 759s COMMENT 759s drop function if exists public.updateRelname(int4, int4); 759s DROP FUNCTION 759s create or replace function public.updateRelname () 759s returns int4 759s as $$ 759s declare 759s v_no_id int4; 759s v_set_origin int4; 759s begin 759s -- ---- 759s -- Grab the central configuration lock 759s -- ---- 759s lock table public.sl_config_lock; 759s 759s update public.sl_table set 759s tab_relname = PGC.relname, tab_nspname = PGN.nspname 759s from pg_catalog.pg_class PGC, pg_catalog.pg_namespace PGN 759s where public.sl_table.tab_reloid = PGC.oid 759s and PGC.relnamespace = PGN.oid and 759s (tab_relname <> PGC.relname or tab_nspname <> PGN.nspname); 759s update public.sl_sequence set 759s seq_relname = PGC.relname, seq_nspname = PGN.nspname 759s from pg_catalog.pg_class PGC, pg_catalog.pg_namespace PGN 759s where public.sl_sequence.seq_reloid = PGC.oid 759s and PGC.relnamespace = PGN.oid and 759s (seq_relname <> PGC.relname or seq_nspname <> PGN.nspname); 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.updateRelname() is 759s 'updateRelname()'; 759s COMMENT 759s drop function if exists public.updateReloid (int4, int4); 759s DROP FUNCTION 759s create or replace function public.updateReloid (p_set_id int4, p_only_on_node int4) 759s returns bigint 759s as $$ 759s declare 759s v_no_id int4; 759s v_set_origin int4; 759s prec record; 759s begin 759s -- ---- 759s -- Check that we either are the set origin or a current 759s -- subscriber of the set. 759s -- ---- 759s v_no_id := public.getLocalNodeId('_main'); 759s select set_origin into v_set_origin 759s from public.sl_set 759s where set_id = p_set_id 759s for update; 759s if not found then 759s raise exception 'Slony-I: set % not found', p_set_id; 759s end if; 759s if v_set_origin <> v_no_id 759s and not exists (select 1 from public.sl_subscribe 759s where sub_set = p_set_id 759s and sub_receiver = v_no_id) 759s then 759s return 0; 759s end if; 759s 759s -- ---- 759s -- If execution on only one node is requested, check that 759s -- we are that node. 759s -- ---- 759s if p_only_on_node > 0 and p_only_on_node <> v_no_id then 759s return 0; 759s end if; 759s 759s -- Update OIDs for tables to values pulled from non-table objects in pg_class 759s -- This ensures that we won't have collisions when repairing the oids 759s for prec in select tab_id from public.sl_table loop 759s update public.sl_table set tab_reloid = (select oid from pg_class pc where relkind <> 'r' and not exists (select 1 from public.sl_table t2 where t2.tab_reloid = pc.oid) limit 1) 759s where tab_id = prec.tab_id; 759s end loop; 759s 759s for prec in select tab_id, tab_relname, tab_nspname from public.sl_table loop 759s update public.sl_table set 759s tab_reloid = (select PGC.oid 759s from pg_catalog.pg_class PGC, pg_catalog.pg_namespace PGN 759s where public.slon_quote_brute(PGC.relname) = public.slon_quote_brute(prec.tab_relname) 759s and PGC.relnamespace = PGN.oid 759s and public.slon_quote_brute(PGN.nspname) = public.slon_quote_brute(prec.tab_nspname)) 759s where tab_id = prec.tab_id; 759s end loop; 759s 759s for prec in select seq_id from public.sl_sequence loop 759s update public.sl_sequence set seq_reloid = (select oid from pg_class pc where relkind <> 'S' and not exists (select 1 from public.sl_sequence t2 where t2.seq_reloid = pc.oid) limit 1) 759s where seq_id = prec.seq_id; 759s end loop; 759s 759s for prec in select seq_id, seq_relname, seq_nspname from public.sl_sequence loop 759s update public.sl_sequence set 759s seq_reloid = (select PGC.oid 759s from pg_catalog.pg_class PGC, pg_catalog.pg_namespace PGN 759s where public.slon_quote_brute(PGC.relname) = public.slon_quote_brute(prec.seq_relname) 759s and PGC.relnamespace = PGN.oid 759s and public.slon_quote_brute(PGN.nspname) = public.slon_quote_brute(prec.seq_nspname)) 759s where seq_id = prec.seq_id; 759s end loop; 759s 759s return 1; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.updateReloid(p_set_id int4, p_only_on_node int4) is 759s 'updateReloid(set_id, only_on_node) 759s 759s Updates the respective reloids in sl_table and sl_seqeunce based on 759s their respective FQN'; 759s COMMENT 759s create or replace function public.logswitch_start() 759s returns int4 as $$ 759s DECLARE 759s v_current_status int4; 759s BEGIN 759s -- ---- 759s -- Get the current log status. 759s -- ---- 759s select last_value into v_current_status from public.sl_log_status; 759s 759s -- ---- 759s -- status = 0: sl_log_1 active, sl_log_2 clean 759s -- Initiate a switch to sl_log_2. 759s -- ---- 759s if v_current_status = 0 then 759s perform "pg_catalog".setval('public.sl_log_status', 3); 759s perform public.registry_set_timestamp( 759s 'logswitch.laststart', now()); 759s raise notice 'Slony-I: Logswitch to sl_log_2 initiated'; 759s return 2; 759s end if; 759s 759s -- ---- 759s -- status = 1: sl_log_2 active, sl_log_1 clean 759s -- Initiate a switch to sl_log_1. 759s -- ---- 759s if v_current_status = 1 then 759s perform "pg_catalog".setval('public.sl_log_status', 2); 759s perform public.registry_set_timestamp( 759s 'logswitch.laststart', now()); 759s raise notice 'Slony-I: Logswitch to sl_log_1 initiated'; 759s return 1; 759s end if; 759s 759s raise exception 'Previous logswitch still in progress'; 759s END; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.logswitch_start() is 759s 'logswitch_start() 759s 759s Initiate a log table switch if none is in progress'; 759s COMMENT 759s create or replace function public.logswitch_finish() 759s returns int4 as $$ 759s DECLARE 759s v_current_status int4; 759s v_dummy record; 759s v_origin int8; 759s v_seqno int8; 759s v_xmin bigint; 759s v_purgeable boolean; 759s BEGIN 759s -- ---- 759s -- Get the current log status. 759s -- ---- 759s select last_value into v_current_status from public.sl_log_status; 759s 759s -- ---- 759s -- status value 0 or 1 means that there is no log switch in progress 759s -- ---- 759s if v_current_status = 0 or v_current_status = 1 then 759s return 0; 759s end if; 759s 759s -- ---- 759s -- status = 2: sl_log_1 active, cleanup sl_log_2 759s -- ---- 759s if v_current_status = 2 then 759s v_purgeable := 'true'; 759s 759s -- ---- 759s -- Attempt to lock sl_log_2 in order to make sure there are no other transactions 759s -- currently writing to it. Exit if it is still in use. This prevents TRUNCATE from 759s -- blocking writers to sl_log_2 while it is waiting for a lock. It also prevents it 759s -- immediately truncating log data generated inside the transaction which was active 759s -- when logswitch_finish() was called (and was blocking TRUNCATE) as soon as that 759s -- transaction is committed. 759s -- ---- 759s begin 759s lock table public.sl_log_2 in access exclusive mode nowait; 759s exception when lock_not_available then 759s raise notice 'Slony-I: could not lock sl_log_2 - sl_log_2 not truncated'; 759s return -1; 759s end; 759s 759s -- ---- 759s -- The cleanup thread calls us after it did the delete and 759s -- vacuum of both log tables. If sl_log_2 is empty now, we 759s -- can truncate it and the log switch is done. 759s -- ---- 759s for v_origin, v_seqno, v_xmin in 759s select ev_origin, ev_seqno, "pg_catalog".txid_snapshot_xmin(ev_snapshot) from public.sl_event 759s where (ev_origin, ev_seqno) in (select ev_origin, min(ev_seqno) from public.sl_event where ev_type = 'SYNC' group by ev_origin) 759s loop 759s if exists (select 1 from public.sl_log_2 where log_origin = v_origin and log_txid >= v_xmin limit 1) then 759s v_purgeable := 'false'; 759s end if; 759s end loop; 759s if not v_purgeable then 759s -- ---- 759s -- Found a row ... log switch is still in progress. 759s -- ---- 759s raise notice 'Slony-I: log switch to sl_log_1 still in progress - sl_log_2 not truncated'; 759s return -1; 759s end if; 759s 759s raise notice 'Slony-I: log switch to sl_log_1 complete - truncate sl_log_2'; 759s truncate public.sl_log_2; 759s if exists (select * from "pg_catalog".pg_class c, "pg_catalog".pg_namespace n, "pg_catalog".pg_attribute a where c.relname = 'sl_log_2' and n.oid = c.relnamespace and a.attrelid = c.oid and a.attname = 'oid') then 759s execute 'alter table public.sl_log_2 set without oids;'; 759s end if; 759s perform "pg_catalog".setval('public.sl_log_status', 0); 759s -- Run addPartialLogIndices() to try to add indices to unused sl_log_? table 759s perform public.addPartialLogIndices(); 759s 759s return 1; 759s end if; 759s 759s -- ---- 759s -- status = 3: sl_log_2 active, cleanup sl_log_1 759s -- ---- 759s if v_current_status = 3 then 759s v_purgeable := 'true'; 759s 759s -- ---- 759s -- Attempt to lock sl_log_1 in order to make sure there are no other transactions 759s -- currently writing to it. Exit if it is still in use. This prevents TRUNCATE from 759s -- blocking writes to sl_log_1 while it is waiting for a lock. It also prevents it 759s -- immediately truncating log data generated inside the transaction which was active 759s -- when logswitch_finish() was called (and was blocking TRUNCATE) as soon as that 759s -- transaction is committed. 759s -- ---- 759s begin 759s lock table public.sl_log_1 in access exclusive mode nowait; 759s exception when lock_not_available then 759s raise notice 'Slony-I: could not lock sl_log_1 - sl_log_1 not truncated'; 759s return -1; 759s end; 759s 759s -- ---- 759s -- The cleanup thread calls us after it did the delete and 759s -- vacuum of both log tables. If sl_log_2 is empty now, we 759s -- can truncate it and the log switch is done. 759s -- ---- 759s for v_origin, v_seqno, v_xmin in 759s select ev_origin, ev_seqno, "pg_catalog".txid_snapshot_xmin(ev_snapshot) from public.sl_event 759s where (ev_origin, ev_seqno) in (select ev_origin, min(ev_seqno) from public.sl_event where ev_type = 'SYNC' group by ev_origin) 759s loop 759s if (exists (select 1 from public.sl_log_1 where log_origin = v_origin and log_txid >= v_xmin limit 1)) then 759s v_purgeable := 'false'; 759s end if; 759s end loop; 759s if not v_purgeable then 759s -- ---- 759s -- Found a row ... log switch is still in progress. 759s -- ---- 759s raise notice 'Slony-I: log switch to sl_log_2 still in progress - sl_log_1 not truncated'; 759s return -1; 759s end if; 759s 759s raise notice 'Slony-I: log switch to sl_log_2 complete - truncate sl_log_1'; 759s truncate public.sl_log_1; 759s if exists (select * from "pg_catalog".pg_class c, "pg_catalog".pg_namespace n, "pg_catalog".pg_attribute a where c.relname = 'sl_log_1' and n.oid = c.relnamespace and a.attrelid = c.oid and a.attname = 'oid') then 759s execute 'alter table public.sl_log_1 set without oids;'; 759s end if; 759s perform "pg_catalog".setval('public.sl_log_status', 1); 759s -- Run addPartialLogIndices() to try to add indices to unused sl_log_? table 759s perform public.addPartialLogIndices(); 759s return 2; 759s end if; 759s END; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.logswitch_finish() is 759s 'logswitch_finish() 759s 759s Attempt to finalize a log table switch in progress 759s return values: 759s -1 if switch in progress, but not complete 759s 0 if no switch in progress 759s 1 if performed truncate on sl_log_2 759s 2 if performed truncate on sl_log_1 759s '; 759s COMMENT 759s create or replace function public.addPartialLogIndices () returns integer as $$ 759s DECLARE 759s v_current_status int4; 759s v_log int4; 759s v_dummy record; 759s v_dummy2 record; 759s idef text; 759s v_count int4; 759s v_iname text; 759s v_ilen int4; 759s v_maxlen int4; 759s BEGIN 759s v_count := 0; 759s select last_value into v_current_status from public.sl_log_status; 759s 759s -- If status is 2 or 3 --> in process of cleanup --> unsafe to create indices 759s if v_current_status in (2, 3) then 759s return 0; 759s end if; 759s 759s if v_current_status = 0 then -- Which log should get indices? 759s v_log := 2; 759s else 759s v_log := 1; 759s end if; 759s -- PartInd_test_db_sl_log_2-node-1 759s -- Add missing indices... 759s for v_dummy in select distinct set_origin from public.sl_set loop 759s v_iname := 'PartInd_main_sl_log_' || v_log::text || '-node-' 759s || v_dummy.set_origin::text; 759s -- raise notice 'Consider adding partial index % on sl_log_%', v_iname, v_log; 759s -- raise notice 'schema: [_main] tablename:[sl_log_%]', v_log; 759s select * into v_dummy2 from pg_catalog.pg_indexes where tablename = 'sl_log_' || v_log::text and indexname = v_iname; 759s if not found then 759s -- raise notice 'index was not found - add it!'; 759s v_iname := 'PartInd_main_sl_log_' || v_log::text || '-node-' || v_dummy.set_origin::text; 759s v_ilen := pg_catalog.length(v_iname); 759s v_maxlen := pg_catalog.current_setting('max_identifier_length'::text)::int4; 759s if v_ilen > v_maxlen then 759s raise exception 'Length of proposed index name [%] > max_identifier_length [%] - cluster name probably too long', v_ilen, v_maxlen; 759s end if; 759s 759s idef := 'create index "' || v_iname || 759s '" on public.sl_log_' || v_log::text || ' USING btree(log_txid) where (log_origin = ' || v_dummy.set_origin::text || ');'; 759s execute idef; 759s v_count := v_count + 1; 759s else 759s -- raise notice 'Index % already present - skipping', v_iname; 759s end if; 759s end loop; 759s 759s -- Remove unneeded indices... 759s for v_dummy in select indexname from pg_catalog.pg_indexes i where i.tablename = 'sl_log_' || v_log::text and 759s i.indexname like ('PartInd_main_sl_log_' || v_log::text || '-node-%') and 759s not exists (select 1 from public.sl_set where 759s i.indexname = 'PartInd_main_sl_log_' || v_log::text || '-node-' || set_origin::text) 759s loop 759s -- raise notice 'Dropping obsolete index %d', v_dummy.indexname; 759s idef := 'drop index public."' || v_dummy.indexname || '";'; 759s execute idef; 759s v_count := v_count - 1; 759s end loop; 759s return v_count; 759s END 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.addPartialLogIndices () is 759s 'Add partial indexes, if possible, to the unused sl_log_? table for 759s all origin nodes, and drop any that are no longer needed. 759s 759s This function presently gets run any time set origins are manipulated 759s (FAILOVER, STORE SET, MOVE SET, DROP SET), as well as each time the 759s system switches between sl_log_1 and sl_log_2.'; 759s COMMENT 759s create or replace function public.check_table_field_exists (p_namespace text, p_table text, p_field text) 759s returns bool as $$ 759s BEGIN 759s return exists ( 759s select 1 from "information_schema".columns 759s where table_schema = p_namespace 759s and table_name = p_table 759s and column_name = p_field 759s ); 759s END;$$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.check_table_field_exists (p_namespace text, p_table text, p_field text) 759s is 'Check if a table has a specific attribute'; 759s COMMENT 759s create or replace function public.add_missing_table_field (p_namespace text, p_table text, p_field text, p_type text) 759s returns bool as $$ 759s DECLARE 759s v_row record; 759s v_query text; 759s BEGIN 759s if not public.check_table_field_exists(p_namespace, p_table, p_field) then 759s raise notice 'Upgrade table %.% - add field %', p_namespace, p_table, p_field; 759s v_query := 'alter table ' || p_namespace || '.' || p_table || ' add column '; 759s v_query := v_query || p_field || ' ' || p_type || ';'; 759s execute v_query; 759s return 't'; 759s else 759s return 'f'; 759s end if; 759s END;$$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.add_missing_table_field (p_namespace text, p_table text, p_field text, p_type text) 759s is 'Add a column of a given type to a table if it is missing'; 759s COMMENT 759s create or replace function public.upgradeSchema(p_old text) 759s returns text as $$ 759s declare 759s v_tab_row record; 759s v_query text; 759s v_keepstatus text; 759s begin 759s -- If old version is pre-2.0, then we require a special upgrade process 759s if p_old like '1.%' then 759s raise exception 'Upgrading to Slony-I 2.x requires running slony_upgrade_20'; 759s end if; 759s 759s perform public.upgradeSchemaAddTruncateTriggers(); 759s 759s -- Change all Slony-I-defined columns that are "timestamp without time zone" to "timestamp *WITH* time zone" 759s if exists (select 1 from information_schema.columns c 759s where table_schema = '_main' and data_type = 'timestamp without time zone' 759s and exists (select 1 from information_schema.tables t where t.table_schema = c.table_schema and t.table_name = c.table_name and t.table_type = 'BASE TABLE') 759s and (c.table_name, c.column_name) in (('sl_confirm', 'con_timestamp'), ('sl_event', 'ev_timestamp'), ('sl_registry', 'reg_timestamp'),('sl_archive_counter', 'ac_timestamp'))) 759s then 759s 759s -- Preserve sl_status 759s select pg_get_viewdef('public.sl_status') into v_keepstatus; 759s execute 'drop view sl_status'; 759s for v_tab_row in select table_schema, table_name, column_name from information_schema.columns c 759s where table_schema = '_main' and data_type = 'timestamp without time zone' 759s and exists (select 1 from information_schema.tables t where t.table_schema = c.table_schema and t.table_name = c.table_name and t.table_type = 'BASE TABLE') 759s and (table_name, column_name) in (('sl_confirm', 'con_timestamp'), ('sl_event', 'ev_timestamp'), ('sl_registry', 'reg_timestamp'),('sl_archive_counter', 'ac_timestamp')) 759s loop 759s raise notice 'Changing Slony-I column [%.%] to timestamp WITH time zone', v_tab_row.table_name, v_tab_row.column_name; 759s v_query := 'alter table ' || public.slon_quote_brute(v_tab_row.table_schema) || 759s '.' || v_tab_row.table_name || ' alter column ' || v_tab_row.column_name || 759s ' type timestamp with time zone;'; 759s execute v_query; 759s end loop; 759s -- restore sl_status 759s execute 'create view sl_status as ' || v_keepstatus; 759s end if; 759s 759s if not exists (select 1 from information_schema.tables where table_schema = '_main' and table_name = 'sl_components') then 759s v_query := ' 759s create table public.sl_components ( 759s co_actor text not null primary key, 759s co_pid integer not null, 759s co_node integer not null, 759s co_connection_pid integer not null, 759s co_activity text, 759s co_starttime timestamptz not null, 759s co_event bigint, 759s co_eventtype text 759s ) without oids; 759s '; 759s execute v_query; 759s end if; 759s 759s 759s 759s 759s 759s if not exists (select 1 from information_schema.tables t where table_schema = '_main' and table_name = 'sl_event_lock') then 759s v_query := 'create table public.sl_event_lock (dummy integer);'; 759s execute v_query; 759s end if; 759s 759s if not exists (select 1 from information_schema.tables t 759s where table_schema = '_main' 759s and table_name = 'sl_apply_stats') then 759s v_query := ' 759s create table public.sl_apply_stats ( 759s as_origin int4, 759s as_num_insert int8, 759s as_num_update int8, 759s as_num_delete int8, 759s as_num_truncate int8, 759s as_num_script int8, 759s as_num_total int8, 759s as_duration interval, 759s as_apply_first timestamptz, 759s as_apply_last timestamptz, 759s as_cache_prepare int8, 759s as_cache_hit int8, 759s as_cache_evict int8, 759s as_cache_prepare_max int8 759s ) WITHOUT OIDS;'; 759s execute v_query; 759s end if; 759s 759s -- 759s -- On the upgrade to 2.2, we change the layout of sl_log_N by 759s -- adding columns log_tablenspname, log_tablerelname, and 759s -- log_cmdupdncols as well as changing log_cmddata into 759s -- log_cmdargs, which is a text array. 759s -- 759s if not public.check_table_field_exists('_main', 'sl_log_1', 'log_cmdargs') then 759s -- 759s -- Check that the cluster is completely caught up 759s -- 759s if public.check_unconfirmed_log() then 759s raise EXCEPTION 'cannot upgrade to new sl_log_N format due to existing unreplicated data'; 759s end if; 759s 759s -- 759s -- Drop tables sl_log_1 and sl_log_2 759s -- 759s drop table public.sl_log_1; 759s drop table public.sl_log_2; 759s 759s -- 759s -- Create the new sl_log_1 759s -- 759s create table public.sl_log_1 ( 759s log_origin int4, 759s log_txid bigint, 759s log_tableid int4, 759s log_actionseq int8, 759s log_tablenspname text, 759s log_tablerelname text, 759s log_cmdtype "char", 759s log_cmdupdncols int4, 759s log_cmdargs text[] 759s ) without oids; 759s create index sl_log_1_idx1 on public.sl_log_1 759s (log_origin, log_txid, log_actionseq); 759s 759s comment on table public.sl_log_1 is 'Stores each change to be propagated to subscriber nodes'; 759s comment on column public.sl_log_1.log_origin is 'Origin node from which the change came'; 759s comment on column public.sl_log_1.log_txid is 'Transaction ID on the origin node'; 759s comment on column public.sl_log_1.log_tableid is 'The table ID (from sl_table.tab_id) that this log entry is to affect'; 759s comment on column public.sl_log_1.log_actionseq is 'The sequence number in which actions will be applied on replicas'; 759s comment on column public.sl_log_1.log_tablenspname is 'The schema name of the table affected'; 759s comment on column public.sl_log_1.log_tablerelname is 'The table name of the table affected'; 759s comment on column public.sl_log_1.log_cmdtype is 'Replication action to take. U = Update, I = Insert, D = DELETE, T = TRUNCATE'; 759s comment on column public.sl_log_1.log_cmdupdncols is 'For cmdtype=U the number of updated columns in cmdargs'; 759s comment on column public.sl_log_1.log_cmdargs is 'The data needed to perform the log action on the replica'; 759s 759s -- 759s -- Create the new sl_log_2 759s -- 759s create table public.sl_log_2 ( 759s log_origin int4, 759s log_txid bigint, 759s log_tableid int4, 759s log_actionseq int8, 759s log_tablenspname text, 759s log_tablerelname text, 759s log_cmdtype "char", 759s log_cmdupdncols int4, 759s log_cmdargs text[] 759s ) without oids; 759s create index sl_log_2_idx1 on public.sl_log_2 759s (log_origin, log_txid, log_actionseq); 759s 759s comment on table public.sl_log_2 is 'Stores each change to be propagated to subscriber nodes'; 759s comment on column public.sl_log_2.log_origin is 'Origin node from which the change came'; 759s comment on column public.sl_log_2.log_txid is 'Transaction ID on the origin node'; 759s comment on column public.sl_log_2.log_tableid is 'The table ID (from sl_table.tab_id) that this log entry is to affect'; 759s comment on column public.sl_log_2.log_actionseq is 'The sequence number in which actions will be applied on replicas'; 759s comment on column public.sl_log_2.log_tablenspname is 'The schema name of the table affected'; 759s comment on column public.sl_log_2.log_tablerelname is 'The table name of the table affected'; 759s comment on column public.sl_log_2.log_cmdtype is 'Replication action to take. U = Update, I = Insert, D = DELETE, T = TRUNCATE'; 759s comment on column public.sl_log_2.log_cmdupdncols is 'For cmdtype=U the number of updated columns in cmdargs'; 759s comment on column public.sl_log_2.log_cmdargs is 'The data needed to perform the log action on the replica'; 759s 759s create table public.sl_log_script ( 759s log_origin int4, 759s log_txid bigint, 759s log_actionseq int8, 759s log_cmdtype "char", 759s log_cmdargs text[] 759s ) WITHOUT OIDS; 759s create index sl_log_script_idx1 on public.sl_log_script 759s (log_origin, log_txid, log_actionseq); 759s 759s comment on table public.sl_log_script is 'Captures SQL script queries to be propagated to subscriber nodes'; 759s comment on column public.sl_log_script.log_origin is 'Origin name from which the change came'; 759s comment on column public.sl_log_script.log_txid is 'Transaction ID on the origin node'; 759s comment on column public.sl_log_script.log_actionseq is 'The sequence number in which actions will be applied on replicas'; 759s comment on column public.sl_log_2.log_cmdtype is 'Replication action to take. S = Script statement, s = Script complete'; 759s comment on column public.sl_log_script.log_cmdargs is 'The DDL statement, optionally followed by selected nodes to execute it on.'; 759s 759s -- 759s -- Put the log apply triggers back onto sl_log_1/2 759s -- 759s create trigger apply_trigger 759s before INSERT on public.sl_log_1 759s for each row execute procedure public.logApply('_main'); 759s alter table public.sl_log_1 759s enable replica trigger apply_trigger; 759s create trigger apply_trigger 759s before INSERT on public.sl_log_2 759s for each row execute procedure public.logApply('_main'); 759s alter table public.sl_log_2 759s enable replica trigger apply_trigger; 759s end if; 759s if not exists (select 1 from information_schema.routines where routine_schema = '_main' and routine_name = 'string_agg') then 759s CREATE AGGREGATE public.string_agg(text) ( 759s SFUNC=public.agg_text_sum, 759s STYPE=text, 759s INITCOND='' 759s ); 759s end if; 759s if not exists (select 1 from information_schema.views where table_schema='_main' and table_name='sl_failover_targets') then 759s create view public.sl_failover_targets as 759s select set_id, 759s set_origin as set_origin, 759s sub1.sub_receiver as backup_id 759s 759s FROM 759s public.sl_subscribe sub1 759s ,public.sl_set set1 759s where 759s sub1.sub_set=set_id 759s and sub1.sub_forward=true 759s --exclude candidates where the set_origin 759s --has a path a node but the failover 759s --candidate has no path to that node 759s and sub1.sub_receiver not in 759s (select p1.pa_client from 759s public.sl_path p1 759s left outer join public.sl_path p2 on 759s (p2.pa_client=p1.pa_client 759s and p2.pa_server=sub1.sub_receiver) 759s where p2.pa_client is null 759s and p1.pa_server=set_origin 759s and p1.pa_client<>sub1.sub_receiver 759s ) 759s and sub1.sub_provider=set_origin 759s --exclude any subscribers that are not 759s --direct subscribers of all sets on the 759s --origin 759s and sub1.sub_receiver not in 759s (select direct_recv.sub_receiver 759s from 759s 759s (--all direct receivers of the first set 759s select subs2.sub_receiver 759s from public.sl_subscribe subs2 759s where subs2.sub_provider=set1.set_origin 759s and subs2.sub_set=set1.set_id) as 759s direct_recv 759s inner join 759s (--all other sets from the origin 759s select set_id from public.sl_set set2 759s where set2.set_origin=set1.set_origin 759s and set2.set_id<>sub1.sub_set) 759s as othersets on(true) 759s left outer join public.sl_subscribe subs3 759s on(subs3.sub_set=othersets.set_id 759s and subs3.sub_forward=true 759s and subs3.sub_provider=set1.set_origin 759s and direct_recv.sub_receiver=subs3.sub_receiver) 759s where subs3.sub_receiver is null 759s ); 759s end if; 759s 759s if not public.check_table_field_exists('_main', 'sl_node', 'no_failed') then 759s alter table public.sl_node add column no_failed bool; 759s update public.sl_node set no_failed=false; 759s end if; 759s return p_old; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s create or replace function public.check_unconfirmed_log () 759s returns bool as $$ 759s declare 759s v_rc bool = false; 759s v_error bool = false; 759s v_origin integer; 759s v_allconf bigint; 759s v_allsnap txid_snapshot; 759s v_count bigint; 759s begin 759s -- 759s -- Loop over all nodes that are the origin of at least one set 759s -- 759s for v_origin in select distinct set_origin as no_id 759s from public.sl_set loop 759s -- 759s -- Per origin determine which is the highest event seqno 759s -- that is confirmed by all subscribers to any of the 759s -- origins sets. 759s -- 759s select into v_allconf min(max_seqno) from ( 759s select con_received, max(con_seqno) as max_seqno 759s from public.sl_confirm 759s where con_origin = v_origin 759s and con_received in ( 759s select distinct sub_receiver 759s from public.sl_set as SET, 759s public.sl_subscribe as SUB 759s where SET.set_id = SUB.sub_set 759s and SET.set_origin = v_origin 759s ) 759s group by con_received 759s ) as maxconfirmed; 759s if not found then 759s raise NOTICE 'check_unconfirmed_log(): cannot determine highest ev_seqno for node % confirmed by all subscribers', v_origin; 759s v_error = true; 759s continue; 759s end if; 759s 759s -- 759s -- Get the txid snapshot that corresponds with that event 759s -- 759s select into v_allsnap ev_snapshot 759s from public.sl_event 759s where ev_origin = v_origin 759s and ev_seqno = v_allconf; 759s if not found then 759s raise NOTICE 'check_unconfirmed_log(): cannot find event %,% in sl_event', v_origin, v_allconf; 759s v_error = true; 759s continue; 759s end if; 759s 759s -- 759s -- Count the number of log rows that appeard after that event. 759s -- 759s select into v_count count(*) from ( 759s select 1 from public.sl_log_1 759s where log_origin = v_origin 759s and log_txid >= "pg_catalog".txid_snapshot_xmax(v_allsnap) 759s union all 759s select 1 from public.sl_log_1 759s where log_origin = v_origin 759s and log_txid in ( 759s select * from "pg_catalog".txid_snapshot_xip(v_allsnap) 759s ) 759s union all 759s select 1 from public.sl_log_2 759s where log_origin = v_origin 759s and log_txid >= "pg_catalog".txid_snapshot_xmax(v_allsnap) 759s union all 759s select 1 from public.sl_log_2 759s where log_origin = v_origin 759s and log_txid in ( 759s select * from "pg_catalog".txid_snapshot_xip(v_allsnap) 759s ) 759s ) as cnt; 759s 759s if v_count > 0 then 759s raise NOTICE 'check_unconfirmed_log(): origin % has % log rows that have not propagated to all subscribers yet', v_origin, v_count; 759s v_rc = true; 759s end if; 759s end loop; 759s 759s if v_error then 759s raise EXCEPTION 'check_unconfirmed_log(): aborting due to previous inconsistency'; 759s end if; 759s 759s return v_rc; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s set search_path to public 759s ; 759s SET 759s comment on function public.upgradeSchema(p_old text) is 759s 'Called during "update functions" by slonik to perform schema changes'; 759s COMMENT 759s create or replace view public.sl_status as select 759s E.ev_origin as st_origin, 759s C.con_received as st_received, 759s E.ev_seqno as st_last_event, 759s E.ev_timestamp as st_last_event_ts, 759s C.con_seqno as st_last_received, 759s C.con_timestamp as st_last_received_ts, 759s CE.ev_timestamp as st_last_received_event_ts, 759s E.ev_seqno - C.con_seqno as st_lag_num_events, 759s current_timestamp - CE.ev_timestamp as st_lag_time 759s from public.sl_event E, public.sl_confirm C, 759s public.sl_event CE 759s where E.ev_origin = C.con_origin 759s and CE.ev_origin = E.ev_origin 759s and CE.ev_seqno = C.con_seqno 759s and (E.ev_origin, E.ev_seqno) in 759s (select ev_origin, max(ev_seqno) 759s from public.sl_event 759s where ev_origin = public.getLocalNodeId('_main') 759s group by 1 759s ) 759s and (C.con_origin, C.con_received, C.con_seqno) in 759s (select con_origin, con_received, max(con_seqno) 759s from public.sl_confirm 759s where con_origin = public.getLocalNodeId('_main') 759s group by 1, 2 759s ); 759s CREATE VIEW 759s comment on view public.sl_status is 'View showing how far behind remote nodes are.'; 759s COMMENT 759s create or replace function public.copyFields(p_tab_id integer) 759s returns text 759s as $$ 759s declare 759s result text; 759s prefix text; 759s prec record; 759s begin 759s result := ''; 759s prefix := '('; -- Initially, prefix is the opening paren 759s 759s for prec in select public.slon_quote_input(a.attname) as column from public.sl_table t, pg_catalog.pg_attribute a where t.tab_id = p_tab_id and t.tab_reloid = a.attrelid and a.attnum > 0 and a.attisdropped = false order by attnum 759s loop 759s result := result || prefix || prec.column; 759s prefix := ','; -- Subsequently, prepend columns with commas 759s end loop; 759s result := result || ')'; 759s return result; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.copyFields(p_tab_id integer) is 759s 'Return a string consisting of what should be appended to a COPY statement 759s to specify fields for the passed-in tab_id. 759s 759s In PG versions > 7.3, this looks like (field1,field2,...fieldn)'; 759s COMMENT 759s create or replace function public.prepareTableForCopy(p_tab_id int4) 759s returns int4 759s as $$ 759s declare 759s v_tab_oid oid; 759s v_tab_fqname text; 759s begin 759s -- ---- 759s -- Get the OID and fully qualified name for the table 759s -- --- 759s select PGC.oid, 759s public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) as tab_fqname 759s into v_tab_oid, v_tab_fqname 759s from public.sl_table T, 759s "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN 759s where T.tab_id = p_tab_id 759s and T.tab_reloid = PGC.oid 759s and PGC.relnamespace = PGN.oid; 759s if not found then 759s raise exception 'Table with ID % not found in sl_table', p_tab_id; 759s end if; 759s 759s -- ---- 759s -- Try using truncate to empty the table and fallback to 759s -- delete on error. 759s -- ---- 759s perform public.TruncateOnlyTable(v_tab_fqname); 759s raise notice 'truncate of % succeeded', v_tab_fqname; 759s 759s -- suppress index activity 759s perform public.disable_indexes_on_table(v_tab_oid); 759s 759s return 1; 759s exception when others then 759s raise notice 'truncate of % failed - doing delete', v_tab_fqname; 759s perform public.disable_indexes_on_table(v_tab_oid); 759s execute 'delete from only ' || public.slon_quote_input(v_tab_fqname); 759s return 0; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.prepareTableForCopy(p_tab_id int4) is 759s 'Delete all data and suppress index maintenance'; 759s COMMENT 759s create or replace function public.finishTableAfterCopy(p_tab_id int4) 759s returns int4 759s as $$ 759s declare 759s v_tab_oid oid; 759s v_tab_fqname text; 759s begin 759s -- ---- 759s -- Get the tables OID and fully qualified name 759s -- --- 759s select PGC.oid, 759s public.slon_quote_brute(PGN.nspname) || '.' || 759s public.slon_quote_brute(PGC.relname) as tab_fqname 759s into v_tab_oid, v_tab_fqname 759s from public.sl_table T, 759s "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN 759s where T.tab_id = p_tab_id 759s and T.tab_reloid = PGC.oid 759s and PGC.relnamespace = PGN.oid; 759s if not found then 759s raise exception 'Table with ID % not found in sl_table', p_tab_id; 759s end if; 759s 759s -- ---- 759s -- Reenable indexes and reindex the table. 759s -- ---- 759s perform public.enable_indexes_on_table(v_tab_oid); 759s execute 'reindex table ' || public.slon_quote_input(v_tab_fqname); 759s 759s return 1; 759s end; 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.finishTableAfterCopy(p_tab_id int4) is 759s 'Reenable index maintenance and reindex the table'; 759s COMMENT 759s create or replace function public.setup_vactables_type () returns integer as $$ 759s begin 759s if not exists (select 1 from pg_catalog.pg_type t, pg_catalog.pg_namespace n 759s where n.nspname = '_main' and t.typnamespace = n.oid and 759s t.typname = 'vactables') then 759s execute 'create type public.vactables as (nspname name, relname name);'; 759s end if; 759s return 1; 759s end 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.setup_vactables_type () is 759s 'Function to be run as part of loading slony1_funcs.sql that creates the vactables type if it is missing'; 759s COMMENT 759s select public.setup_vactables_type(); 759s setup_vactables_type 759s ---------------------- 759s 1 759s (1 row) 759s 759s drop function public.setup_vactables_type (); 759s DROP FUNCTION 759s create or replace function public.TablesToVacuum () returns setof public.vactables as $$ 759s declare 759s prec public.vactables%rowtype; 759s begin 759s prec.nspname := '_main'; 759s prec.relname := 'sl_event'; 759s if public.ShouldSlonyVacuumTable(prec.nspname, prec.relname) then 759s return next prec; 759s end if; 759s prec.nspname := '_main'; 759s prec.relname := 'sl_confirm'; 759s if public.ShouldSlonyVacuumTable(prec.nspname, prec.relname) then 759s return next prec; 759s end if; 759s prec.nspname := '_main'; 759s prec.relname := 'sl_setsync'; 759s if public.ShouldSlonyVacuumTable(prec.nspname, prec.relname) then 759s return next prec; 759s end if; 759s prec.nspname := '_main'; 759s prec.relname := 'sl_seqlog'; 759s if public.ShouldSlonyVacuumTable(prec.nspname, prec.relname) then 759s return next prec; 759s end if; 759s prec.nspname := '_main'; 759s prec.relname := 'sl_archive_counter'; 759s if public.ShouldSlonyVacuumTable(prec.nspname, prec.relname) then 759s return next prec; 759s end if; 759s prec.nspname := '_main'; 759s prec.relname := 'sl_components'; 759s if public.ShouldSlonyVacuumTable(prec.nspname, prec.relname) then 759s return next prec; 759s end if; 759s prec.nspname := '_main'; 759s prec.relname := 'sl_log_script'; 759s if public.ShouldSlonyVacuumTable(prec.nspname, prec.relname) then 759s return next prec; 759s end if; 759s prec.nspname := 'pg_catalog'; 759s prec.relname := 'pg_listener'; 759s if public.ShouldSlonyVacuumTable(prec.nspname, prec.relname) then 759s return next prec; 759s end if; 759s prec.nspname := 'pg_catalog'; 759s prec.relname := 'pg_statistic'; 759s if public.ShouldSlonyVacuumTable(prec.nspname, prec.relname) then 759s return next prec; 759s end if; 759s 759s return; 759s end 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.TablesToVacuum () is 759s 'Return a list of tables that require frequent vacuuming. The 759s function is used so that the list is not hardcoded into C code.'; 759s NOTICE: function public.reshapesubscription(int4,int4,int4) does not exist, skipping 759s COMMENT 759s create or replace function public.add_empty_table_to_replication(p_set_id int4, p_tab_id int4, p_nspname text, p_tabname text, p_idxname text, p_comment text) returns bigint as $$ 759s declare 759s 759s prec record; 759s v_origin int4; 759s v_isorigin boolean; 759s v_fqname text; 759s v_query text; 759s v_rows integer; 759s v_idxname text; 759s 759s begin 759s -- Need to validate that the set exists; the set will tell us if this is the origin 759s select set_origin into v_origin from public.sl_set where set_id = p_set_id; 759s if not found then 759s raise exception 'add_empty_table_to_replication: set % not found!', p_set_id; 759s end if; 759s 759s -- Need to be aware of whether or not this node is origin for the set 759s v_isorigin := ( v_origin = public.getLocalNodeId('_main') ); 759s 759s v_fqname := '"' || p_nspname || '"."' || p_tabname || '"'; 759s -- Take out a lock on the table 759s v_query := 'lock ' || v_fqname || ';'; 759s execute v_query; 759s 759s if v_isorigin then 759s -- On the origin, verify that the table is empty, failing if it has any tuples 759s v_query := 'select 1 as tuple from ' || v_fqname || ' limit 1;'; 759s execute v_query into prec; 759s GET DIAGNOSTICS v_rows = ROW_COUNT; 759s if v_rows = 0 then 759s raise notice 'add_empty_table_to_replication: table % empty on origin - OK', v_fqname; 759s else 759s raise exception 'add_empty_table_to_replication: table % contained tuples on origin node %', v_fqname, v_origin; 759s end if; 759s else 759s -- On other nodes, TRUNCATE the table 759s v_query := 'truncate ' || v_fqname || ';'; 759s execute v_query; 759s end if; 759s -- If p_idxname is NULL, then look up the PK index, and RAISE EXCEPTION if one does not exist 759s if p_idxname is NULL then 759s select c2.relname into prec from pg_catalog.pg_index i, pg_catalog.pg_class c1, pg_catalog.pg_class c2, pg_catalog.pg_namespace n where i.indrelid = c1.oid and i.indexrelid = c2.oid and c1.relname = p_tabname and i.indisprimary and n.nspname = p_nspname and n.oid = c1.relnamespace; 759s if not found then 759s raise exception 'add_empty_table_to_replication: table % has no primary key and no candidate specified!', v_fqname; 759s else 759s v_idxname := prec.relname; 759s end if; 759s else 759s v_idxname := p_idxname; 759s end if; 759s return public.setAddTable_int(p_set_id, p_tab_id, v_fqname, v_idxname, p_comment); 759s end 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.add_empty_table_to_replication(p_set_id int4, p_tab_id int4, p_nspname text, p_tabname text, p_idxname text, p_comment text) is 759s 'Verify that a table is empty, and add it to replication. 759s tab_idxname is optional - if NULL, then we use the primary key. 759s 759s Note that this function is to be run within an EXECUTE SCRIPT script, 759s so it runs at the right place in the transaction stream on all 759s nodes.'; 759s COMMENT 759s create or replace function public.replicate_partition(p_tab_id int4, p_nspname text, p_tabname text, p_idxname text, p_comment text) returns bigint as $$ 759s declare 759s prec record; 759s prec2 record; 759s v_set_id int4; 759s 759s begin 759s -- Look up the parent table; fail if it does not exist 759s select c1.oid into prec from pg_catalog.pg_class c1, pg_catalog.pg_class c2, pg_catalog.pg_inherits i, pg_catalog.pg_namespace n where c1.oid = i.inhparent and c2.oid = i.inhrelid and n.oid = c2.relnamespace and n.nspname = p_nspname and c2.relname = p_tabname; 759s if not found then 759s raise exception 'replicate_partition: No parent table found for %.%!', p_nspname, p_tabname; 759s end if; 759s 759s -- The parent table tells us what replication set to use 759s select tab_set into prec2 from public.sl_table where tab_reloid = prec.oid; 759s if not found then 759s raise exception 'replicate_partition: Parent table % for new partition %.% is not replicated!', prec.oid, p_nspname, p_tabname; 759s end if; 759s 759s v_set_id := prec2.tab_set; 759s 759s -- Now, we have all the parameters necessary to run add_empty_table_to_replication... 759s return public.add_empty_table_to_replication(v_set_id, p_tab_id, p_nspname, p_tabname, p_idxname, p_comment); 759s end 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.replicate_partition(p_tab_id int4, p_nspname text, p_tabname text, p_idxname text, p_comment text) is 759s 'Add a partition table to replication. 759s tab_idxname is optional - if NULL, then we use the primary key. 759s This function looks up replication configuration via the parent table. 759s 759s Note that this function is to be run within an EXECUTE SCRIPT script, 759s so it runs at the right place in the transaction stream on all 759s nodes.'; 759s COMMENT 759s create or replace function public.disable_indexes_on_table (i_oid oid) 759s returns integer as $$ 759s begin 759s -- Setting pg_class.relhasindex to false will cause copy not to 759s -- maintain any indexes. At the end of the copy we will reenable 759s -- them and reindex the table. This bulk creating of indexes is 759s -- faster. 759s 759s update pg_catalog.pg_class set relhasindex ='f' where oid = i_oid; 759s return 1; 759s end $$ 759s language plpgsql; 759s CREATE FUNCTION 759s comment on function public.disable_indexes_on_table(i_oid oid) is 759s 'disable indexes on the specified table. 759s Used during subscription process to suppress indexes, which allows 759s COPY to go much faster. 759s 759s This may be set as a SECURITY DEFINER in order to eliminate the need 759s for superuser access by Slony-I. 759s '; 759s COMMENT 759s create or replace function public.enable_indexes_on_table (i_oid oid) 759s returns integer as $$ 759s begin 759s update pg_catalog.pg_class set relhasindex ='t' where oid = i_oid; 759s return 1; 759s end $$ 759s language plpgsql 759s security definer; 759s CREATE FUNCTION 759s comment on function public.enable_indexes_on_table(i_oid oid) is 759s 're-enable indexes on the specified table. 759s 759s This may be set as a SECURITY DEFINER in order to eliminate the need 759s for superuser access by Slony-I. 759s '; 759s COMMENT 759s drop function if exists public.reshapeSubscription(int4,int4,int4); 759s DROP FUNCTION 759s create or replace function public.reshapeSubscription (p_sub_origin int4, p_sub_provider int4, p_sub_receiver int4) returns int4 as $$ 759s begin 759s update public.sl_subscribe 759s set sub_provider=p_sub_provider 759s from public.sl_set 759s WHERE sub_set=sl_set.set_id 759s and sl_set.set_origin=p_sub_origin and sub_receiver=p_sub_receiver; 759s if found then 759s perform public.RebuildListenEntries(); 759s notify "_main_Restart"; 759s end if; 759s return 0; 759s end 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.reshapeSubscription(p_sub_origin int4, p_sub_provider int4, p_sub_receiver int4) is 759s 'Run on a receiver/subscriber node when the provider for that 759s subscription is being changed. Slonik will invoke this method 759s before the SUBSCRIBE_SET event propogates to the receiver 759s so listen paths can be updated.'; 759s COMMENT 759s create or replace function public.slon_node_health_check() returns boolean as $$ 759s declare 759s prec record; 759s all_ok boolean; 759s begin 759s all_ok := 't'::boolean; 759s -- validate that all tables in sl_table have: 759s -- sl_table agreeing with pg_class 759s for prec in select tab_id, tab_relname, tab_nspname from 759s public.sl_table t where not exists (select 1 from pg_catalog.pg_class c, pg_catalog.pg_namespace n 759s where c.oid = t.tab_reloid and c.relname = t.tab_relname and c.relnamespace = n.oid and n.nspname = t.tab_nspname) loop 759s all_ok := 'f'::boolean; 759s raise warning 'table [id,nsp,name]=[%,%,%] - sl_table does not match pg_class/pg_namespace', prec.tab_id, prec.tab_relname, prec.tab_nspname; 759s end loop; 759s if not all_ok then 759s raise warning 'Mismatch found between sl_table and pg_class. Slonik command REPAIR CONFIG may be useful to rectify this.'; 759s end if; 759s return all_ok; 759s end 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.slon_node_health_check() is 'called when slon starts up to validate that there are not problems with node configuration. Returns t if all is OK, f if there is a problem.'; 759s COMMENT 759s create or replace function public.log_truncate () returns trigger as 759s $$ 759s declare 759s r_role text; 759s c_nspname text; 759s c_relname text; 759s c_log integer; 759s c_node integer; 759s c_tabid integer; 759s begin 759s -- Ignore this call if session_replication_role = 'local' 759s select into r_role setting 759s from pg_catalog.pg_settings where name = 'session_replication_role'; 759s if r_role = 'local' then 759s return NULL; 759s end if; 759s 759s c_tabid := tg_argv[0]; 759s c_node := public.getLocalNodeId('_main'); 759s select tab_nspname, tab_relname into c_nspname, c_relname 759s from public.sl_table where tab_id = c_tabid; 759s select last_value into c_log from public.sl_log_status; 759s if c_log in (0, 2) then 759s insert into public.sl_log_1 ( 759s log_origin, log_txid, log_tableid, 759s log_actionseq, log_tablenspname, 759s log_tablerelname, log_cmdtype, 759s log_cmdupdncols, log_cmdargs 759s ) values ( 759s c_node, pg_catalog.txid_current(), c_tabid, 759s nextval('public.sl_action_seq'), c_nspname, 759s c_relname, 'T', 0, '{}'::text[]); 759s else -- (1, 3) 759s insert into public.sl_log_2 ( 759s log_origin, log_txid, log_tableid, 759s log_actionseq, log_tablenspname, 759s log_tablerelname, log_cmdtype, 759s log_cmdupdncols, log_cmdargs 759s ) values ( 759s c_node, pg_catalog.txid_current(), c_tabid, 759s nextval('public.sl_action_seq'), c_nspname, 759s c_relname, 'T', 0, '{}'::text[]); 759s end if; 759s return NULL; 759s end 759s $$ language plpgsql 759s security definer; 759s CREATE FUNCTION 759s comment on function public.log_truncate () 759s is 'trigger function run when a replicated table receives a TRUNCATE request'; 759s COMMENT 759s create or replace function public.deny_truncate () returns trigger as 759s $$ 759s declare 759s r_role text; 759s begin 759s -- Ignore this call if session_replication_role = 'local' 759s select into r_role setting 759s from pg_catalog.pg_settings where name = 'session_replication_role'; 759s if r_role = 'local' then 759s return NULL; 759s end if; 759s 759s raise exception 'truncation of replicated table forbidden on subscriber node'; 759s end 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.deny_truncate () 759s is 'trigger function run when a replicated table receives a TRUNCATE request'; 759s COMMENT 759s create or replace function public.store_application_name (i_name text) returns text as $$ 759s declare 759s p_command text; 759s begin 759s if exists (select 1 from pg_catalog.pg_settings where name = 'application_name') then 759s p_command := 'set application_name to '''|| i_name || ''';'; 759s execute p_command; 759s return i_name; 759s end if; 759s return NULL::text; 759s end $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.store_application_name (i_name text) is 759s 'Set application_name GUC, if possible. Returns NULL if it fails to work.'; 759s COMMENT 759s create or replace function public.is_node_reachable(origin_node_id integer, 759s receiver_node_id integer) returns boolean as $$ 759s declare 759s listen_row record; 759s reachable boolean; 759s begin 759s reachable:=false; 759s select * into listen_row from public.sl_listen where 759s li_origin=origin_node_id and li_receiver=receiver_node_id; 759s if found then 759s reachable:=true; 759s end if; 759s return reachable; 759s end $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.is_node_reachable(origin_node_id integer, receiver_node_id integer) 759s is 'Is the receiver node reachable from the origin, via any of the listen paths?'; 759s COMMENT 759s create or replace function public.component_state (i_actor text, i_pid integer, i_node integer, i_conn_pid integer, i_activity text, i_starttime timestamptz, i_event bigint, i_eventtype text) returns integer as $$ 759s begin 759s -- Trim out old state for this component 759s if not exists (select 1 from public.sl_components where co_actor = i_actor) then 759s insert into public.sl_components 759s (co_actor, co_pid, co_node, co_connection_pid, co_activity, co_starttime, co_event, co_eventtype) 759s values 759s (i_actor, i_pid, i_node, i_conn_pid, i_activity, i_starttime, i_event, i_eventtype); 759s else 759s update public.sl_components 759s set 759s co_connection_pid = i_conn_pid, co_activity = i_activity, co_starttime = i_starttime, co_event = i_event, 759s co_eventtype = i_eventtype 759s where co_actor = i_actor 759s and co_starttime < i_starttime; 759s end if; 759s return 1; 759s end $$ 759s language plpgsql; 759s CREATE FUNCTION 759s comment on function public.component_state (i_actor text, i_pid integer, i_node integer, i_conn_pid integer, i_activity text, i_starttime timestamptz, i_event bigint, i_eventtype text) is 759s 'Store state of a Slony component. Useful for monitoring'; 759s COMMENT 759s create or replace function public.recreate_log_trigger(p_fq_table_name text, 759s p_tab_id oid, p_tab_attkind text) returns integer as $$ 759s begin 759s execute 'drop trigger "_main_logtrigger" on ' || 759s p_fq_table_name ; 759s -- ---- 759s execute 'create trigger "_main_logtrigger"' || 759s ' after insert or update or delete on ' || 759s p_fq_table_name 759s || ' for each row execute procedure public.logTrigger (' || 759s pg_catalog.quote_literal('_main') || ',' || 759s pg_catalog.quote_literal(p_tab_id::text) || ',' || 759s pg_catalog.quote_literal(p_tab_attkind) || ');'; 759s return 0; 759s end 759s $$ language plpgsql; 759s CREATE FUNCTION 759s comment on function public.recreate_log_trigger(p_fq_table_name text, 759s p_tab_id oid, p_tab_attkind text) is 759s 'A function that drops and recreates the log trigger on the specified table. 759s It is intended to be used after the primary_key/unique index has changed.'; 759s COMMENT 759s create or replace function public.repair_log_triggers(only_locked boolean) 759s returns integer as $$ 759s declare 759s retval integer; 759s table_row record; 759s begin 759s retval=0; 759s for table_row in 759s select tab_nspname,tab_relname, 759s tab_idxname, tab_id, mode, 759s public.determineAttKindUnique(tab_nspname|| 759s '.'||tab_relname,tab_idxname) as attkind 759s from 759s public.sl_table 759s left join 759s pg_locks on (relation=tab_reloid and pid=pg_backend_pid() 759s and mode='AccessExclusiveLock') 759s ,pg_trigger 759s where tab_reloid=tgrelid and 759s public.determineAttKindUnique(tab_nspname||'.' 759s ||tab_relname,tab_idxname) 759s !=(public.decode_tgargs(tgargs))[2] 759s and tgname = '_main' 759s || '_logtrigger' 759s LOOP 759s if (only_locked=false) or table_row.mode='AccessExclusiveLock' then 759s perform public.recreate_log_trigger 759s (table_row.tab_nspname||'.'||table_row.tab_relname, 759s table_row.tab_id,table_row.attkind); 759s retval=retval+1; 759s else 759s raise notice '%.% has an invalid configuration on the log trigger. This was not corrected because only_lock is true and the table is not locked.', 759s table_row.tab_nspname,table_row.tab_relname; 759s 759s end if; 759s end loop; 759s return retval; 759s end 759s $$ 759s language plpgsql; 759s CREATE FUNCTION 759s comment on function public.repair_log_triggers(only_locked boolean) 759s is ' 759s repair the log triggers as required. If only_locked is true then only 759s tables that are already exclusively locked by the current transaction are 759s repaired. Otherwise all replicated tables with outdated trigger arguments 759s are recreated.'; 759s COMMENT 759s create or replace function public.unsubscribe_abandoned_sets(p_failed_node int4) returns bigint 759s as $$ 759s declare 759s v_row record; 759s v_seq_id bigint; 759s v_local_node int4; 759s begin 759s 759s select public.getLocalNodeId('_main') into 759s v_local_node; 759s 759s if found then 759s --abandon all subscriptions from this origin. 759s for v_row in select sub_set,sub_receiver from 759s public.sl_subscribe, public.sl_set 759s where sub_set=set_id and set_origin=p_failed_node 759s and sub_receiver=v_local_node 759s loop 759s raise notice 'Slony-I: failover_abandon_set() is abandoning subscription to set % on node % because it is too far ahead', v_row.sub_set, 759s v_local_node; 759s --If this node is a provider for the set 759s --then the receiver needs to be unsubscribed. 759s -- 759s select public.unsubscribeSet(v_row.sub_set, 759s v_local_node,true) 759s into v_seq_id; 759s end loop; 759s end if; 759s 759s return v_seq_id; 759s end 759s $$ language plpgsql; 759s CREATE FUNCTION 759s CREATE OR replace function public.agg_text_sum(txt_before TEXT, txt_new TEXT) RETURNS TEXT AS 759s $BODY$ 759s DECLARE 759s c_delim text; 759s BEGIN 759s c_delim = ','; 759s IF (txt_before IS NULL or txt_before='') THEN 759s RETURN txt_new; 759s END IF; 759s RETURN txt_before || c_delim || txt_new; 759s END; 759s $BODY$ 759s LANGUAGE plpgsql; 759s CREATE FUNCTION 759s comment on function public.agg_text_sum(text,text) is 759s 'An accumulator function used by the slony string_agg function to 759s aggregate rows into a string'; 759s COMMENT 759s Dropping cluster 16/regress ... 759s ### End 16 psql ### 759s autopkgtest [09:48:16]: test load-functions: -----------------------] 760s autopkgtest [09:48:17]: test load-functions: - - - - - - - - - - results - - - - - - - - - - 760s load-functions PASS 760s autopkgtest [09:48:17]: @@@@@@@@@@@@@@@@@@@@ summary 760s load-functions PASS 765s nova [W] Timed out waiting for eb6f8327-c7bb-480a-9d13-b846141b691c to get deleted.