0s autopkgtest [01:11:19]: starting date and time: 2024-06-08 01:11:19+0000 0s autopkgtest [01:11:19]: git checkout: 433ed4cb Merge branch 'skia/nova_flock' into 'ubuntu/5.34+prod' 0s autopkgtest [01:11:19]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work._cclc5ge/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:pytest,src:astropy --apt-upgrade python-cloudflare --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=pytest/8.2.2-1ubuntu1 astropy/6.0.1-4' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos01-ppc64el-18.secgroup --name adt-oracular-ppc64el-python-cloudflare-20240608-011119-juju-7f2275-prod-proposed-migration-environment-2-01486c6c-007f-47cf-974c-bf1c251da095 --image adt/ubuntu-oracular-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --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'"'"'' --mirror=http://us.ports.ubuntu.com/ubuntu-ports/ 127s autopkgtest [01:13:26]: testbed dpkg architecture: ppc64el 127s autopkgtest [01:13:26]: testbed apt version: 2.9.3 127s autopkgtest [01:13:26]: @@@@@@@@@@@@@@@@@@@@ test bed setup 128s Get:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease [110 kB] 128s Get:2 http://ftpmaster.internal/ubuntu oracular-proposed/restricted Sources [7972 B] 128s Get:3 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse Sources [2864 B] 128s Get:4 http://ftpmaster.internal/ubuntu oracular-proposed/main Sources [44.3 kB] 128s Get:5 http://ftpmaster.internal/ubuntu oracular-proposed/universe Sources [339 kB] 129s Get:6 http://ftpmaster.internal/ubuntu oracular-proposed/main ppc64el Packages [54.3 kB] 129s Get:7 http://ftpmaster.internal/ubuntu oracular-proposed/restricted ppc64el Packages [1860 B] 129s Get:8 http://ftpmaster.internal/ubuntu oracular-proposed/universe ppc64el Packages [303 kB] 129s Get:9 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse ppc64el Packages [1768 B] 129s Fetched 866 kB in 1s (922 kB/s) 129s Reading package lists... 132s Reading package lists... 132s Building dependency tree... 132s Reading state information... 132s Calculating upgrade... 132s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 132s Reading package lists... 132s Building dependency tree... 132s Reading state information... 133s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 133s Hit:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease 133s Get:2 http://ftpmaster.internal/ubuntu oracular InRelease [110 kB] 133s Hit:3 http://ftpmaster.internal/ubuntu oracular-updates InRelease 134s Hit:4 http://ftpmaster.internal/ubuntu oracular-security InRelease 134s Get:5 http://ftpmaster.internal/ubuntu oracular/multiverse Sources [300 kB] 134s Get:6 http://ftpmaster.internal/ubuntu oracular/main Sources [1377 kB] 134s Get:7 http://ftpmaster.internal/ubuntu oracular/universe Sources [20.2 MB] 137s Get:8 http://ftpmaster.internal/ubuntu oracular/restricted Sources [18.3 kB] 137s Get:9 http://ftpmaster.internal/ubuntu oracular/main ppc64el Packages [1348 kB] 137s Get:10 http://ftpmaster.internal/ubuntu oracular/restricted ppc64el Packages [3140 B] 137s Get:11 http://ftpmaster.internal/ubuntu oracular/universe ppc64el Packages [15.0 MB] 137s Get:12 http://ftpmaster.internal/ubuntu oracular/multiverse ppc64el Packages [186 kB] 142s Fetched 38.5 MB in 9s (4087 kB/s) 143s Reading package lists... 143s Reading package lists... 144s Building dependency tree... 144s Reading state information... 144s Calculating upgrade... 144s The following packages will be upgraded: 144s debianutils libheif-plugin-aomdec libheif-plugin-aomenc 144s libheif-plugin-libde265 libheif1 libnetplan1 liburcu8t64 netplan-generator 144s netplan.io python3-netplan 144s 10 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 144s Need to get 804 kB of archives. 144s After this operation, 5120 B of additional disk space will be used. 144s Get:1 http://ftpmaster.internal/ubuntu oracular/main ppc64el debianutils ppc64el 5.18 [90.5 kB] 145s Get:2 http://ftpmaster.internal/ubuntu oracular/main ppc64el netplan-generator ppc64el 1.0-3ubuntu1 [59.3 kB] 145s Get:3 http://ftpmaster.internal/ubuntu oracular/main ppc64el python3-netplan ppc64el 1.0-3ubuntu1 [21.8 kB] 145s Get:4 http://ftpmaster.internal/ubuntu oracular/main ppc64el netplan.io ppc64el 1.0-3ubuntu1 [66.6 kB] 145s Get:5 http://ftpmaster.internal/ubuntu oracular/main ppc64el libnetplan1 ppc64el 1.0-3ubuntu1 [138 kB] 145s Get:6 http://ftpmaster.internal/ubuntu oracular/main ppc64el libheif-plugin-aomdec ppc64el 1.17.6-3 [10.2 kB] 145s Get:7 http://ftpmaster.internal/ubuntu oracular/main ppc64el libheif-plugin-aomenc ppc64el 1.17.6-3 [16.6 kB] 145s Get:8 http://ftpmaster.internal/ubuntu oracular/main ppc64el libheif1 ppc64el 1.17.6-3 [320 kB] 145s Get:9 http://ftpmaster.internal/ubuntu oracular/main ppc64el libheif-plugin-libde265 ppc64el 1.17.6-3 [8484 B] 145s Get:10 http://ftpmaster.internal/ubuntu oracular/main ppc64el liburcu8t64 ppc64el 0.14.0-4 [72.9 kB] 145s Fetched 804 kB in 1s (1444 kB/s) 145s (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 ... 72612 files and directories currently installed.) 145s Preparing to unpack .../debianutils_5.18_ppc64el.deb ... 145s Unpacking debianutils (5.18) over (5.17build1) ... 145s Setting up debianutils (5.18) ... 145s (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 ... 72612 files and directories currently installed.) 145s Preparing to unpack .../0-netplan-generator_1.0-3ubuntu1_ppc64el.deb ... 145s Adding 'diversion of /lib/systemd/system-generators/netplan to /lib/systemd/system-generators/netplan.usr-is-merged by netplan-generator' 145s Unpacking netplan-generator (1.0-3ubuntu1) over (1.0-2ubuntu1) ... 145s Preparing to unpack .../1-python3-netplan_1.0-3ubuntu1_ppc64el.deb ... 145s Unpacking python3-netplan (1.0-3ubuntu1) over (1.0-2ubuntu1) ... 145s Preparing to unpack .../2-netplan.io_1.0-3ubuntu1_ppc64el.deb ... 145s Unpacking netplan.io (1.0-3ubuntu1) over (1.0-2ubuntu1) ... 145s Preparing to unpack .../3-libnetplan1_1.0-3ubuntu1_ppc64el.deb ... 145s Unpacking libnetplan1:ppc64el (1.0-3ubuntu1) over (1.0-2ubuntu1) ... 145s Preparing to unpack .../4-libheif-plugin-aomdec_1.17.6-3_ppc64el.deb ... 145s Unpacking libheif-plugin-aomdec:ppc64el (1.17.6-3) over (1.17.6-1ubuntu4) ... 145s Preparing to unpack .../5-libheif-plugin-aomenc_1.17.6-3_ppc64el.deb ... 145s Unpacking libheif-plugin-aomenc:ppc64el (1.17.6-3) over (1.17.6-1ubuntu4) ... 146s Preparing to unpack .../6-libheif1_1.17.6-3_ppc64el.deb ... 146s Unpacking libheif1:ppc64el (1.17.6-3) over (1.17.6-1ubuntu4) ... 146s Preparing to unpack .../7-libheif-plugin-libde265_1.17.6-3_ppc64el.deb ... 146s Unpacking libheif-plugin-libde265:ppc64el (1.17.6-3) over (1.17.6-1ubuntu4) ... 146s Preparing to unpack .../8-liburcu8t64_0.14.0-4_ppc64el.deb ... 146s Unpacking liburcu8t64:ppc64el (0.14.0-4) over (0.14.0-3.1build1) ... 146s Setting up liburcu8t64:ppc64el (0.14.0-4) ... 146s Setting up libnetplan1:ppc64el (1.0-3ubuntu1) ... 146s Setting up python3-netplan (1.0-3ubuntu1) ... 146s Setting up netplan-generator (1.0-3ubuntu1) ... 146s Removing 'diversion of /lib/systemd/system-generators/netplan to /lib/systemd/system-generators/netplan.usr-is-merged by netplan-generator' 146s Setting up netplan.io (1.0-3ubuntu1) ... 146s Setting up libheif-plugin-aomdec:ppc64el (1.17.6-3) ... 146s Setting up libheif-plugin-libde265:ppc64el (1.17.6-3) ... 146s Setting up libheif1:ppc64el (1.17.6-3) ... 146s Setting up libheif-plugin-aomenc:ppc64el (1.17.6-3) ... 146s Processing triggers for libc-bin (2.39-0ubuntu8.1) ... 146s Processing triggers for man-db (2.12.1-1) ... 147s Processing triggers for dbus (1.14.10-4ubuntu4) ... 147s Reading package lists... 147s Building dependency tree... 147s Reading state information... 148s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 150s autopkgtest [01:13:49]: testbed running kernel: Linux 6.8.0-31-generic #31-Ubuntu SMP Sat Apr 20 00:05:55 UTC 2024 150s autopkgtest [01:13:49]: @@@@@@@@@@@@@@@@@@@@ apt-source python-cloudflare 152s Get:1 http://ftpmaster.internal/ubuntu oracular/universe python-cloudflare 2.11.1-1ubuntu1 (dsc) [2557 B] 152s Get:2 http://ftpmaster.internal/ubuntu oracular/universe python-cloudflare 2.11.1-1ubuntu1 (tar) [87.1 kB] 152s Get:3 http://ftpmaster.internal/ubuntu oracular/universe python-cloudflare 2.11.1-1ubuntu1 (asc) [858 B] 152s Get:4 http://ftpmaster.internal/ubuntu oracular/universe python-cloudflare 2.11.1-1ubuntu1 (diff) [5820 B] 152s gpgv: Signature made Wed Feb 7 19:26:47 2024 UTC 152s gpgv: using RSA key 568BF22A66337CBFC9A6B9B72C83DBC8E9BD0E37 152s gpgv: Can't check signature: No public key 152s dpkg-source: warning: cannot verify inline signature for ./python-cloudflare_2.11.1-1ubuntu1.dsc: no acceptable signature found 152s autopkgtest [01:13:51]: testing package python-cloudflare version 2.11.1-1ubuntu1 152s autopkgtest [01:13:51]: build not needed 153s autopkgtest [01:13:52]: test smoke: preparing testbed 154s Reading package lists... 154s Building dependency tree... 154s Reading state information... 154s Starting pkgProblemResolver with broken count: 0 154s Starting 2 pkgProblemResolver with broken count: 0 154s Done 155s The following additional packages will be installed: 155s python3-bs4 python3-cloudflare python3-soupsieve 155s Recommended packages: 155s python3-lxml 155s The following NEW packages will be installed: 155s autopkgtest-satdep python3-bs4 python3-cloudflare python3-soupsieve 155s 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 155s Need to get 184 kB/185 kB of archives. 155s After this operation, 1113 kB of additional disk space will be used. 155s Get:1 /tmp/autopkgtest.8iezkZ/1-autopkgtest-satdep.deb autopkgtest-satdep ppc64el 0 [712 B] 155s Get:2 http://ftpmaster.internal/ubuntu oracular/main ppc64el python3-soupsieve all 2.5-1 [33.0 kB] 155s Get:3 http://ftpmaster.internal/ubuntu oracular/main ppc64el python3-bs4 all 4.12.3-1 [109 kB] 155s Get:4 http://ftpmaster.internal/ubuntu oracular/universe ppc64el python3-cloudflare all 2.11.1-1ubuntu1 [41.9 kB] 155s Fetched 184 kB in 0s (437 kB/s) 155s Selecting previously unselected package python3-soupsieve. 155s (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 ... 72612 files and directories currently installed.) 155s Preparing to unpack .../python3-soupsieve_2.5-1_all.deb ... 155s Unpacking python3-soupsieve (2.5-1) ... 155s Selecting previously unselected package python3-bs4. 155s Preparing to unpack .../python3-bs4_4.12.3-1_all.deb ... 155s Unpacking python3-bs4 (4.12.3-1) ... 155s Selecting previously unselected package python3-cloudflare. 155s Preparing to unpack .../python3-cloudflare_2.11.1-1ubuntu1_all.deb ... 155s Unpacking python3-cloudflare (2.11.1-1ubuntu1) ... 155s Selecting previously unselected package autopkgtest-satdep. 155s Preparing to unpack .../1-autopkgtest-satdep.deb ... 155s Unpacking autopkgtest-satdep (0) ... 155s Setting up python3-soupsieve (2.5-1) ... 156s Setting up python3-bs4 (4.12.3-1) ... 156s Setting up python3-cloudflare (2.11.1-1ubuntu1) ... 156s /usr/lib/python3/dist-packages/CloudFlare/api_decode_from_openapi.py:10: SyntaxWarning: invalid escape sequence '\{' 156s match_identifier = re.compile('\{[A-Za-z0-9_]*\}') 156s Setting up autopkgtest-satdep (0) ... 158s (Reading database ... 72738 files and directories currently installed.) 158s Removing autopkgtest-satdep (0) ... 159s autopkgtest [01:13:58]: test smoke: python3 -c 'import CloudFlare; print(CloudFlare)' 159s autopkgtest [01:13:58]: test smoke: [----------------------- 159s /tmp/autopkgtest.8iezkZ/build.Yza/src/CloudFlare/api_decode_from_openapi.py:10: SyntaxWarning: invalid escape sequence '\{' 159s match_identifier = re.compile('\{[A-Za-z0-9_]*\}') 159s 159s autopkgtest [01:13:58]: test smoke: -----------------------] 160s autopkgtest [01:13:59]: test smoke: - - - - - - - - - - results - - - - - - - - - - 160s smoke PASS (superficial) 160s autopkgtest [01:13:59]: test get-ips: preparing testbed 161s Reading package lists... 161s Building dependency tree... 161s Reading state information... 162s Starting pkgProblemResolver with broken count: 0 162s Starting 2 pkgProblemResolver with broken count: 0 162s Done 162s The following additional packages will be installed: 162s python3-iniconfig python3-packaging python3-pluggy python3-pytest 162s The following NEW packages will be installed: 162s autopkgtest-satdep python3-iniconfig python3-packaging python3-pluggy 162s python3-pytest 162s 0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. 162s Need to get 318 kB/319 kB of archives. 162s After this operation, 1585 kB of additional disk space will be used. 162s Get:1 /tmp/autopkgtest.8iezkZ/2-autopkgtest-satdep.deb autopkgtest-satdep ppc64el 0 [724 B] 162s Get:2 http://ftpmaster.internal/ubuntu oracular/universe ppc64el python3-iniconfig all 1.1.1-2 [6024 B] 162s Get:3 http://ftpmaster.internal/ubuntu oracular/main ppc64el python3-packaging all 24.0-1 [41.1 kB] 162s Get:4 http://ftpmaster.internal/ubuntu oracular/universe ppc64el python3-pluggy all 1.5.0-1 [21.0 kB] 162s Get:5 http://ftpmaster.internal/ubuntu oracular-proposed/universe ppc64el python3-pytest all 8.2.2-1ubuntu1 [250 kB] 163s Fetched 318 kB in 0s (640 kB/s) 163s Selecting previously unselected package python3-iniconfig. 163s (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 ... 72738 files and directories currently installed.) 163s Preparing to unpack .../python3-iniconfig_1.1.1-2_all.deb ... 163s Unpacking python3-iniconfig (1.1.1-2) ... 163s Selecting previously unselected package python3-packaging. 163s Preparing to unpack .../python3-packaging_24.0-1_all.deb ... 163s Unpacking python3-packaging (24.0-1) ... 163s Selecting previously unselected package python3-pluggy. 163s Preparing to unpack .../python3-pluggy_1.5.0-1_all.deb ... 163s Unpacking python3-pluggy (1.5.0-1) ... 163s Selecting previously unselected package python3-pytest. 163s Preparing to unpack .../python3-pytest_8.2.2-1ubuntu1_all.deb ... 163s Unpacking python3-pytest (8.2.2-1ubuntu1) ... 163s Selecting previously unselected package autopkgtest-satdep. 163s Preparing to unpack .../2-autopkgtest-satdep.deb ... 163s Unpacking autopkgtest-satdep (0) ... 163s Setting up python3-iniconfig (1.1.1-2) ... 163s Setting up python3-packaging (24.0-1) ... 163s Setting up python3-pluggy (1.5.0-1) ... 163s Setting up python3-pytest (8.2.2-1ubuntu1) ... 164s Setting up autopkgtest-satdep (0) ... 164s Processing triggers for man-db (2.12.1-1) ... 166s (Reading database ... 72902 files and directories currently installed.) 166s Removing autopkgtest-satdep (0) ... 167s autopkgtest [01:14:06]: test get-ips: python3 ./tests/test1.py 167s autopkgtest [01:14:06]: test get-ips: [----------------------- 167s ============================= test session starts ============================== 167s platform linux -- Python 3.12.3, pytest-8.2.2, pluggy-1.5.0 167s rootdir: /tmp/autopkgtest.8iezkZ/build.Yza/src 167s collected 1 item 167s 977s tests/test1.py F [100%] 977s 977s =================================== FAILURES =================================== 977s ___________________________________ test_ips ___________________________________ 977s 977s self = 977s 977s def _new_conn(self) -> socket.socket: 977s """Establish a socket connection and set nodelay settings on it. 977s 977s :return: New socket connection. 977s """ 977s try: 977s > sock = connection.create_connection( 977s (self._dns_host, self.port), 977s self.timeout, 977s source_address=self.source_address, 977s socket_options=self.socket_options, 977s ) 977s 977s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 977s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 977s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 977s raise err 977s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 977s 977s address = ('api.cloudflare.com', 443), timeout = None, source_address = None 977s socket_options = [(6, 1, 1)] 977s 977s def create_connection( 977s address: tuple[str, int], 977s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 977s source_address: tuple[str, int] | None = None, 977s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 977s ) -> socket.socket: 977s """Connect to *address* and return the socket object. 977s 977s Convenience function. Connect to *address* (a 2-tuple ``(host, 977s port)``) and return the socket object. Passing the optional 977s *timeout* parameter will set the timeout on the socket instance 977s before attempting to connect. If no *timeout* is supplied, the 977s global default timeout setting returned by :func:`socket.getdefaulttimeout` 977s is used. If *source_address* is set it must be a tuple of (host, port) 977s for the socket to bind as a source address before making the connection. 977s An host of '' or port 0 tells the OS to use the default. 977s """ 977s 977s host, port = address 977s if host.startswith("["): 977s host = host.strip("[]") 977s err = None 977s 977s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 977s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 977s # The original create_connection function always returns all records. 977s family = allowed_gai_family() 977s 977s try: 977s host.encode("idna") 977s except UnicodeError: 977s raise LocationParseError(f"'{host}', label empty or too long") from None 977s 977s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 977s af, socktype, proto, canonname, sa = res 977s sock = None 977s try: 977s sock = socket.socket(af, socktype, proto) 977s 977s # If provided, set socket level options before connecting. 977s _set_socket_options(sock, socket_options) 977s 977s if timeout is not _DEFAULT_TIMEOUT: 977s sock.settimeout(timeout) 977s if source_address: 977s sock.bind(source_address) 977s > sock.connect(sa) 977s E OSError: [Errno 101] Network is unreachable 977s 977s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: OSError 977s 977s The above exception was the direct cause of the following exception: 977s 977s self = 977s method = 'GET', url = '/client/v4/ips', body = None 977s headers = {'User-Agent': 'python-cloudflare/2.11.1/python-requests/2.31.0/python/3.12.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json'} 977s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 977s redirect = False, assert_same_host = False 977s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 977s release_conn = False, chunked = False, body_pos = None, preload_content = False 977s decode_content = False, response_kw = {} 977s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/client/v4/ips', query=None, fragment=None) 977s destination_scheme = None, conn = None, release_this_conn = True 977s http_tunnel_required = False, err = None, clean_exit = False 977s 977s def urlopen( # type: ignore[override] 977s self, 977s method: str, 977s url: str, 977s body: _TYPE_BODY | None = None, 977s headers: typing.Mapping[str, str] | None = None, 977s retries: Retry | bool | int | None = None, 977s redirect: bool = True, 977s assert_same_host: bool = True, 977s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 977s pool_timeout: int | None = None, 977s release_conn: bool | None = None, 977s chunked: bool = False, 977s body_pos: _TYPE_BODY_POSITION | None = None, 977s preload_content: bool = True, 977s decode_content: bool = True, 977s **response_kw: typing.Any, 977s ) -> BaseHTTPResponse: 977s """ 977s Get a connection from the pool and perform an HTTP request. This is the 977s lowest level call for making a request, so you'll need to specify all 977s the raw details. 977s 977s .. note:: 977s 977s More commonly, it's appropriate to use a convenience method 977s such as :meth:`request`. 977s 977s .. note:: 977s 977s `release_conn` will only behave as expected if 977s `preload_content=False` because we want to make 977s `preload_content=False` the default behaviour someday soon without 977s breaking backwards compatibility. 977s 977s :param method: 977s HTTP request method (such as GET, POST, PUT, etc.) 977s 977s :param url: 977s The URL to perform the request on. 977s 977s :param body: 977s Data to send in the request body, either :class:`str`, :class:`bytes`, 977s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 977s 977s :param headers: 977s Dictionary of custom headers to send, such as User-Agent, 977s If-None-Match, etc. If None, pool headers are used. If provided, 977s these headers completely replace any pool-specific headers. 977s 977s :param retries: 977s Configure the number of retries to allow before raising a 977s :class:`~urllib3.exceptions.MaxRetryError` exception. 977s 977s Pass ``None`` to retry until you receive a response. Pass a 977s :class:`~urllib3.util.retry.Retry` object for fine-grained control 977s over different types of retries. 977s Pass an integer number to retry connection errors that many times, 977s but no other types of errors. Pass zero to never retry. 977s 977s If ``False``, then retries are disabled and any exception is raised 977s immediately. Also, instead of raising a MaxRetryError on redirects, 977s the redirect response will be returned. 977s 977s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 977s 977s :param redirect: 977s If True, automatically handle redirects (status codes 301, 302, 977s 303, 307, 308). Each redirect counts as a retry. Disabling retries 977s will disable redirect, too. 977s 977s :param assert_same_host: 977s If ``True``, will make sure that the host of the pool requests is 977s consistent else will raise HostChangedError. When ``False``, you can 977s use the pool on an HTTP proxy and request foreign hosts. 977s 977s :param timeout: 977s If specified, overrides the default timeout for this one 977s request. It may be a float (in seconds) or an instance of 977s :class:`urllib3.util.Timeout`. 977s 977s :param pool_timeout: 977s If set and the pool is set to block=True, then this method will 977s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 977s connection is available within the time period. 977s 977s :param bool preload_content: 977s If True, the response's body will be preloaded into memory. 977s 977s :param bool decode_content: 977s If True, will attempt to decode the body based on the 977s 'content-encoding' header. 977s 977s :param release_conn: 977s If False, then the urlopen call will not release the connection 977s back into the pool once a response is received (but will release if 977s you read the entire contents of the response such as when 977s `preload_content=True`). This is useful if you're not preloading 977s the response's content immediately. You will need to call 977s ``r.release_conn()`` on the response ``r`` to return the connection 977s back into the pool. If None, it takes the value of ``preload_content`` 977s which defaults to ``True``. 977s 977s :param bool chunked: 977s If True, urllib3 will send the body using chunked transfer 977s encoding. Otherwise, urllib3 will send the body using the standard 977s content-length form. Defaults to False. 977s 977s :param int body_pos: 977s Position to seek to in file-like body in the event of a retry or 977s redirect. Typically this won't need to be set because urllib3 will 977s auto-populate the value when needed. 977s """ 977s parsed_url = parse_url(url) 977s destination_scheme = parsed_url.scheme 977s 977s if headers is None: 977s headers = self.headers 977s 977s if not isinstance(retries, Retry): 977s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 977s 977s if release_conn is None: 977s release_conn = preload_content 977s 977s # Check host 977s if assert_same_host and not self.is_same_host(url): 977s raise HostChangedError(self, url, retries) 977s 977s # Ensure that the URL we're connecting to is properly encoded 977s if url.startswith("/"): 977s url = to_str(_encode_target(url)) 977s else: 977s url = to_str(parsed_url.url) 977s 977s conn = None 977s 977s # Track whether `conn` needs to be released before 977s # returning/raising/recursing. Update this variable if necessary, and 977s # leave `release_conn` constant throughout the function. That way, if 977s # the function recurses, the original value of `release_conn` will be 977s # passed down into the recursive call, and its value will be respected. 977s # 977s # See issue #651 [1] for details. 977s # 977s # [1] 977s release_this_conn = release_conn 977s 977s http_tunnel_required = connection_requires_http_tunnel( 977s self.proxy, self.proxy_config, destination_scheme 977s ) 977s 977s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 977s # have to copy the headers dict so we can safely change it without those 977s # changes being reflected in anyone else's copy. 977s if not http_tunnel_required: 977s headers = headers.copy() # type: ignore[attr-defined] 977s headers.update(self.proxy_headers) # type: ignore[union-attr] 977s 977s # Must keep the exception bound to a separate variable or else Python 3 977s # complains about UnboundLocalError. 977s err = None 977s 977s # Keep track of whether we cleanly exited the except block. This 977s # ensures we do proper cleanup in finally. 977s clean_exit = False 977s 977s # Rewind body position, if needed. Record current position 977s # for future rewinds in the event of a redirect/retry. 977s body_pos = set_file_position(body, body_pos) 977s 977s try: 977s # Request a connection from the queue. 977s timeout_obj = self._get_timeout(timeout) 977s conn = self._get_conn(timeout=pool_timeout) 977s 977s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 977s 977s # Is this a closed/new connection that requires CONNECT tunnelling? 977s if self.proxy is not None and http_tunnel_required and conn.is_closed: 977s try: 977s self._prepare_proxy(conn) 977s except (BaseSSLError, OSError, SocketTimeout) as e: 977s self._raise_timeout( 977s err=e, url=self.proxy.url, timeout_value=conn.timeout 977s ) 977s raise 977s 977s # If we're going to release the connection in ``finally:``, then 977s # the response doesn't need to know about the connection. Otherwise 977s # it will also try to release it and we'll have a double-release 977s # mess. 977s response_conn = conn if not release_conn else None 977s 977s # Make the request on the HTTPConnection object 977s > response = self._make_request( 977s conn, 977s method, 977s url, 977s timeout=timeout_obj, 977s body=body, 977s headers=headers, 977s chunked=chunked, 977s retries=retries, 977s response_conn=response_conn, 977s preload_content=preload_content, 977s decode_content=decode_content, 977s **response_kw, 977s ) 977s 977s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 977s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 977s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 977s raise new_e 977s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 977s self._validate_conn(conn) 977s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 977s conn.connect() 977s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 977s self.sock = sock = self._new_conn() 977s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 977s 977s self = 977s 977s def _new_conn(self) -> socket.socket: 977s """Establish a socket connection and set nodelay settings on it. 977s 977s :return: New socket connection. 977s """ 977s try: 977s sock = connection.create_connection( 977s (self._dns_host, self.port), 977s self.timeout, 977s source_address=self.source_address, 977s socket_options=self.socket_options, 977s ) 977s except socket.gaierror as e: 977s raise NameResolutionError(self.host, self, e) from e 977s except SocketTimeout as e: 977s raise ConnectTimeoutError( 977s self, 977s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 977s ) from e 977s 977s except OSError as e: 977s > raise NewConnectionError( 977s self, f"Failed to establish a new connection: {e}" 977s ) from e 977s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 101] Network is unreachable 977s 977s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 977s 977s The above exception was the direct cause of the following exception: 977s 977s self = 977s request = , stream = False 977s timeout = Timeout(connect=None, read=None, total=None), verify = True 977s cert = None, proxies = OrderedDict() 977s 977s def send( 977s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 977s ): 977s """Sends PreparedRequest object. Returns Response object. 977s 977s :param request: The :class:`PreparedRequest ` being sent. 977s :param stream: (optional) Whether to stream the request content. 977s :param timeout: (optional) How long to wait for the server to send 977s data before giving up, as a float, or a :ref:`(connect timeout, 977s read timeout) ` tuple. 977s :type timeout: float or tuple or urllib3 Timeout object 977s :param verify: (optional) Either a boolean, in which case it controls whether 977s we verify the server's TLS certificate, or a string, in which case it 977s must be a path to a CA bundle to use 977s :param cert: (optional) Any user-provided SSL certificate to be trusted. 977s :param proxies: (optional) The proxies dictionary to apply to the request. 977s :rtype: requests.Response 977s """ 977s 977s try: 977s conn = self.get_connection(request.url, proxies) 977s except LocationValueError as e: 977s raise InvalidURL(e, request=request) 977s 977s self.cert_verify(conn, request.url, verify, cert) 977s url = self.request_url(request, proxies) 977s self.add_headers( 977s request, 977s stream=stream, 977s timeout=timeout, 977s verify=verify, 977s cert=cert, 977s proxies=proxies, 977s ) 977s 977s chunked = not (request.body is None or "Content-Length" in request.headers) 977s 977s if isinstance(timeout, tuple): 977s try: 977s connect, read = timeout 977s timeout = TimeoutSauce(connect=connect, read=read) 977s except ValueError: 977s raise ValueError( 977s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 977s f"or a single float to set both timeouts to the same value." 977s ) 977s elif isinstance(timeout, TimeoutSauce): 977s pass 977s else: 977s timeout = TimeoutSauce(connect=timeout, read=timeout) 977s 977s try: 977s > resp = conn.urlopen( 977s method=request.method, 977s url=url, 977s body=request.body, 977s headers=request.headers, 977s redirect=False, 977s assert_same_host=False, 977s preload_content=False, 977s decode_content=False, 977s retries=self.max_retries, 977s timeout=timeout, 977s chunked=chunked, 977s ) 977s 977s /usr/lib/python3/dist-packages/requests/adapters.py:486: 977s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 977s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 977s retries = retries.increment( 977s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 977s 977s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 977s method = 'GET', url = '/client/v4/ips', response = None 977s error = NewConnectionError(': Failed to establish a new connection: [Errno 101] Network is unreachable') 977s _pool = 977s _stacktrace = 977s 977s def increment( 977s self, 977s method: str | None = None, 977s url: str | None = None, 977s response: BaseHTTPResponse | None = None, 977s error: Exception | None = None, 977s _pool: ConnectionPool | None = None, 977s _stacktrace: TracebackType | None = None, 977s ) -> Retry: 977s """Return a new Retry object with incremented retry counters. 977s 977s :param response: A response object, or None, if the server did not 977s return a response. 977s :type response: :class:`~urllib3.response.BaseHTTPResponse` 977s :param Exception error: An error encountered during the request, or 977s None if the response was received successfully. 977s 977s :return: A new ``Retry`` object. 977s """ 977s if self.total is False and error: 977s # Disabled, indicate to re-raise the error. 977s raise reraise(type(error), error, _stacktrace) 977s 977s total = self.total 977s if total is not None: 977s total -= 1 977s 977s connect = self.connect 977s read = self.read 977s redirect = self.redirect 977s status_count = self.status 977s other = self.other 977s cause = "unknown" 977s status = None 977s redirect_location = None 977s 977s if error and self._is_connection_error(error): 977s # Connect retry? 977s if connect is False: 977s raise reraise(type(error), error, _stacktrace) 977s elif connect is not None: 977s connect -= 1 977s 977s elif error and self._is_read_error(error): 977s # Read retry? 977s if read is False or method is None or not self._is_method_retryable(method): 977s raise reraise(type(error), error, _stacktrace) 977s elif read is not None: 977s read -= 1 977s 977s elif error: 977s # Other retry? 977s if other is not None: 977s other -= 1 977s 977s elif response and response.get_redirect_location(): 977s # Redirect retry? 977s if redirect is not None: 977s redirect -= 1 977s cause = "too many redirects" 977s response_redirect_location = response.get_redirect_location() 977s if response_redirect_location: 977s redirect_location = response_redirect_location 977s status = response.status 977s 977s else: 977s # Incrementing because of a server error like a 500 in 977s # status_forcelist and the given method is in the allowed_methods 977s cause = ResponseError.GENERIC_ERROR 977s if response and response.status: 977s if status_count is not None: 977s status_count -= 1 977s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 977s status = response.status 977s 977s history = self.history + ( 977s RequestHistory(method, url, error, status, redirect_location), 977s ) 977s 977s new_retry = self.new( 977s total=total, 977s connect=connect, 977s read=read, 977s redirect=redirect, 977s status=status_count, 977s other=other, 977s history=history, 977s ) 977s 977s if new_retry.is_exhausted(): 977s reason = error or ResponseError(cause) 977s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 977s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.cloudflare.com', port=443): Max retries exceeded with url: /client/v4/ips (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 101] Network is unreachable')) 977s 977s /usr/lib/python3/dist-packages/urllib3/util/retry.py:515: MaxRetryError 977s 977s During handling of the above exception, another exception occurred: 977s 977s self = 977s method = 'GET' 977s headers = {'Content-Type': 'application/json', 'User-Agent': 'python-cloudflare/2.11.1/python-requests/2.31.0/python/3.12.3'} 977s parts = ['ips', None, None, None, None], identifiers = [None, None, None, None] 977s params = None, data = None, files = None 977s 977s def _call_network(self, method, headers, parts, identifiers, params, data, files): 977s """ Cloudflare v4 API""" 977s 977s if (method is None) or (parts[0] is None): 977s # should never happen 977s raise CloudFlareInternalError(0, 'You must specify a method and endpoint') 977s 977s # By this point we know that parts[] has 5 elements and identifiers[] has 4 elements (even if some are None) 977s 977s if parts[1] is not None or (data is not None and method == 'GET'): 977s if identifiers[0] is None: 977s raise CloudFlareAPIError(0, 'You must specify first identifier') 977s if identifiers[1] is None: 977s url = (self.base_url + '/' 977s + parts[0] + '/' 977s + identifiers[0] + '/' 977s + parts[1]) 977s else: 977s url = (self.base_url + '/' 977s + parts[0] + '/' 977s + identifiers[0] + '/' 977s + parts[1] + '/' 977s + identifiers[1]) 977s else: 977s if identifiers[0] is None: 977s url = (self.base_url + '/' 977s + parts[0]) 977s else: 977s url = (self.base_url + '/' 977s + parts[0] + '/' 977s + identifiers[0]) 977s if parts[2]: 977s url += '/' + parts[2] 977s if identifiers[2]: 977s url += '/' + identifiers[2] 977s if parts[3]: 977s url += '/' + parts[3] 977s if identifiers[3]: 977s url += '/' + identifiers[3] 977s if parts[4]: 977s url += '/' + parts[4] 977s 977s if self.logger: 977s msg = build_curl(method, url, headers, params, data, files) 977s self.logger.debug('Call: emulated curl command ...\n%s', msg) 977s 977s try: 977s > response = self.network(method, url, headers, params, data, files) 977s 977s /usr/lib/python3/dist-packages/CloudFlare/cloudflare.py:202: 977s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 977s /usr/lib/python3/dist-packages/CloudFlare/network.py:29: in __call__ 977s r = self.session.get(url, headers=headers, params=params, data=data) 977s /usr/lib/python3/dist-packages/requests/sessions.py:602: in get 977s return self.request("GET", url, **kwargs) 977s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 977s resp = self.send(prep, **send_kwargs) 977s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 977s r = adapter.send(request, **kwargs) 977s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 977s 977s self = 977s request = , stream = False 977s timeout = Timeout(connect=None, read=None, total=None), verify = True 977s cert = None, proxies = OrderedDict() 977s 977s def send( 977s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 977s ): 977s """Sends PreparedRequest object. Returns Response object. 977s 977s :param request: The :class:`PreparedRequest ` being sent. 977s :param stream: (optional) Whether to stream the request content. 977s :param timeout: (optional) How long to wait for the server to send 977s data before giving up, as a float, or a :ref:`(connect timeout, 977s read timeout) ` tuple. 977s :type timeout: float or tuple or urllib3 Timeout object 977s :param verify: (optional) Either a boolean, in which case it controls whether 977s we verify the server's TLS certificate, or a string, in which case it 977s must be a path to a CA bundle to use 977s :param cert: (optional) Any user-provided SSL certificate to be trusted. 977s :param proxies: (optional) The proxies dictionary to apply to the request. 977s :rtype: requests.Response 977s """ 977s 977s try: 977s conn = self.get_connection(request.url, proxies) 977s except LocationValueError as e: 977s raise InvalidURL(e, request=request) 977s 977s self.cert_verify(conn, request.url, verify, cert) 977s url = self.request_url(request, proxies) 977s self.add_headers( 977s request, 977s stream=stream, 977s timeout=timeout, 977s verify=verify, 977s cert=cert, 977s proxies=proxies, 977s ) 977s 977s chunked = not (request.body is None or "Content-Length" in request.headers) 977s 977s if isinstance(timeout, tuple): 977s try: 977s connect, read = timeout 977s timeout = TimeoutSauce(connect=connect, read=read) 977s except ValueError: 977s raise ValueError( 977s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 977s f"or a single float to set both timeouts to the same value." 977s ) 977s elif isinstance(timeout, TimeoutSauce): 977s pass 977s else: 977s timeout = TimeoutSauce(connect=timeout, read=timeout) 977s 977s try: 977s resp = conn.urlopen( 977s method=request.method, 977s url=url, 977s body=request.body, 977s headers=request.headers, 977s redirect=False, 977s assert_same_host=False, 977s preload_content=False, 977s decode_content=False, 977s retries=self.max_retries, 977s timeout=timeout, 977s chunked=chunked, 977s ) 977s 977s except (ProtocolError, OSError) as err: 977s raise ConnectionError(err, request=request) 977s 977s except MaxRetryError as e: 977s if isinstance(e.reason, ConnectTimeoutError): 977s # TODO: Remove this in 3.0.0: see #2811 977s if not isinstance(e.reason, NewConnectionError): 977s raise ConnectTimeout(e, request=request) 977s 977s if isinstance(e.reason, ResponseError): 977s raise RetryError(e, request=request) 977s 977s if isinstance(e.reason, _ProxyError): 977s raise ProxyError(e, request=request) 977s 977s if isinstance(e.reason, _SSLError): 977s # This branch is for urllib3 v1.22 and later. 977s raise SSLError(e, request=request) 977s 977s > raise ConnectionError(e, request=request) 977s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.cloudflare.com', port=443): Max retries exceeded with url: /client/v4/ips (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 101] Network is unreachable')) 977s 977s /usr/lib/python3/dist-packages/requests/adapters.py:519: ConnectionError 977s 977s During handling of the above exception, another exception occurred: 977s 977s def test_ips(): 977s cf = CloudFlare.CloudFlare() 977s > ips = cf.ips.get() 977s 977s tests/test1.py:12: 977s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 977s /usr/lib/python3/dist-packages/CloudFlare/cloudflare.py:629: in get 977s return self._base.do_no_auth('GET', self._parts, [identifier1, identifier2, identifier3, identifier4], params, data) 977s /usr/lib/python3/dist-packages/CloudFlare/cloudflare.py:113: in do_no_auth 977s return self._call(method, headers, parts, identifiers, params, data, files) 977s /usr/lib/python3/dist-packages/CloudFlare/cloudflare.py:431: in _call 977s response_data = self._raw(method, headers, parts, identifiers, params, data, files) 977s /usr/lib/python3/dist-packages/CloudFlare/cloudflare.py:283: in _raw 977s [response_type, response_code, response_data] = self._call_network(method, 977s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 977s 977s self = 977s method = 'GET' 977s headers = {'Content-Type': 'application/json', 'User-Agent': 'python-cloudflare/2.11.1/python-requests/2.31.0/python/3.12.3'} 977s parts = ['ips', None, None, None, None], identifiers = [None, None, None, None] 977s params = None, data = None, files = None 977s 977s def _call_network(self, method, headers, parts, identifiers, params, data, files): 977s """ Cloudflare v4 API""" 977s 977s if (method is None) or (parts[0] is None): 977s # should never happen 977s raise CloudFlareInternalError(0, 'You must specify a method and endpoint') 977s 977s # By this point we know that parts[] has 5 elements and identifiers[] has 4 elements (even if some are None) 977s 977s if parts[1] is not None or (data is not None and method == 'GET'): 977s if identifiers[0] is None: 977s raise CloudFlareAPIError(0, 'You must specify first identifier') 977s if identifiers[1] is None: 977s url = (self.base_url + '/' 977s + parts[0] + '/' 977s + identifiers[0] + '/' 977s + parts[1]) 977s else: 977s url = (self.base_url + '/' 977s + parts[0] + '/' 977s + identifiers[0] + '/' 977s + parts[1] + '/' 977s + identifiers[1]) 977s else: 977s if identifiers[0] is None: 977s url = (self.base_url + '/' 977s + parts[0]) 977s else: 977s url = (self.base_url + '/' 977s + parts[0] + '/' 977s + identifiers[0]) 977s if parts[2]: 977s url += '/' + parts[2] 977s if identifiers[2]: 977s url += '/' + identifiers[2] 977s if parts[3]: 977s url += '/' + parts[3] 977s if identifiers[3]: 977s url += '/' + identifiers[3] 977s if parts[4]: 977s url += '/' + parts[4] 977s 977s if self.logger: 977s msg = build_curl(method, url, headers, params, data, files) 977s self.logger.debug('Call: emulated curl command ...\n%s', msg) 977s 977s try: 977s response = self.network(method, url, headers, params, data, files) 977s except requests_RequestException as e: 977s if self.logger: 977s self.logger.debug('Call: requests exception! "%s"', e) 977s > raise CloudFlareAPIError(0, e) 977s E CloudFlare.exceptions.CloudFlareAPIError: HTTPSConnectionPool(host='api.cloudflare.com', port=443): Max retries exceeded with url: /client/v4/ips (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 101] Network is unreachable')) 977s 977s /usr/lib/python3/dist-packages/CloudFlare/cloudflare.py:206: CloudFlareAPIError 977s =========================== short test summary info ============================ 977s FAILED tests/test1.py::test_ips - CloudFlare.exceptions.CloudFlareAPIError: H... 977s ======================== 1 failed in 809.54s (0:13:29) ========================= 977s autopkgtest [01:27:36]: test get-ips: -----------------------] 978s get-ips PASS 978s autopkgtest [01:27:37]: test get-ips: - - - - - - - - - - results - - - - - - - - - - 978s autopkgtest [01:27:37]: @@@@@@@@@@@@@@@@@@@@ summary 978s smoke PASS (superficial) 978s get-ips PASS 1001s nova [W] Using flock in scalingstack-bos01-ppc64el 1001s Creating nova instance adt-oracular-ppc64el-python-cloudflare-20240608-011119-juju-7f2275-prod-proposed-migration-environment-2-01486c6c-007f-47cf-974c-bf1c251da095 from image adt/ubuntu-oracular-ppc64el-server-20240607.img (UUID 3fb9a257-7646-4253-9bcd-b14e4853c723)...