2026-02-11 15:11:26,511: INFO: Building opensdn-controller-config-devicemgr 2026-02-11 15:11:26,567: INFO: Building args: --network host --build-arg PIP_REPOSITORY=http://localhost:6667/pip/simple --build-arg CONTRAIL_REGISTRY=nexus.gz1.opensdn.io:5101 --build-arg CONTRAIL_CONTAINER_TAG=master-2_5_1_4-1_6 --build-arg SITE_MIRROR=http://nexus.gz1.opensdn.io/repository/external-web-cache --build-arg LINUX_DISTR_VER=9 --build-arg LINUX_DISTR=rockylinux --build-arg CONTAINER_NAME=opensdn-controller-config-devicemgr --build-arg UBUNTU_DISTR_VERSION=24.04 --build-arg UBUNTU_DISTR=ubuntu --build-arg VENDOR_NAME=OpenSDN-IO --build-arg VENDOR_DOMAIN=io.opensdn --build-arg BUILD_IMAGE=tf-dev-sandbox:compile --build-arg BUILD_ROOT=/buildroot #0 building with "default" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: #1 transferring dockerfile: 2.19kB done #1 DONE 1.9s #2 [internal] load metadata for nexus.gz1.opensdn.io:5101/opensdn-controller-config-base:master-2_5_1_4-1_6 #2 DONE 0.0s #3 [internal] load metadata for docker.io/library/tf-dev-sandbox:compile #3 DONE 0.0s #4 [internal] load .dockerignore #4 transferring context: #4 transferring context: 2B done #4 DONE 2.7s #5 [stage-1 1/4] FROM nexus.gz1.opensdn.io:5101/opensdn-controller-config-base:master-2_5_1_4-1_6 #5 CACHED #6 [build 1/1] FROM docker.io/library/tf-dev-sandbox:compile #6 CACHED #7 [internal] load build context #7 transferring context: 1.97kB done #7 DONE 2.1s #8 [stage-1 2/4] COPY --from=build /pip/fabric_ansible_playbooks-0.1.dev0.tar.gz /opt/ #8 DONE 1.0s #9 [stage-1 3/4] RUN set -e ; dnf install -y libffi-devel iputils ; python3 -m pip install "cryptography<3.5" "importlib-resources<5.1"; python3 -m pip install --no-compile --no-binary :all: ansible ansible-core ; dnf clean all -y ; rm -rf /var/cache/yum ; source /functions.sh ; download_package https://github.com Juniper/ansible-junos-stdlib/archive/2.4.2.tar.gz Juniper.junos ; ansible-galaxy install Juniper.junos ; rm -f Juniper.junos ; python3 -m pip install --no-compile --extra-index-url http://localhost:6667/pip/simple "device_manager==0.1.dev0" "fabric_ansible==0.1.dev0" ; rm -rf /root/.cache ; mkdir -p /etc/ansible ; last="fabric_ansible_playbooks-0.1.dev0.tar.gz" ; echo "DBG: /opt/ last tar.gz = $last" ; tar -xzf /opt/$last -C /opt ; mv /opt/${last/.tar.gz/}/* /opt/ ; rmdir /opt/${last/.tar.gz/}/ ; cp /opt/ansible.cfg /etc/ansible/ansible.cfg #9 1.259 added from: http://tf-mirrors.gz1.opensdn.io/re 26 MB/s | 2.1 MB 00:00 #9 2.179 added from: http://tf-mirrors.gz1.opensdn.io/re 17 MB/s | 730 kB 00:00 #9 2.570 added from: http://tf-mirrors.gz1.opensdn.io/re 12 MB/s | 264 kB 00:00 #9 3.033 added from: http://tf-mirrors.gz1.opensdn.io/re 32 MB/s | 7.0 MB 00:00 #9 6.927 added from: http://tf-mirrors.gz1.opensdn.io/re 24 MB/s | 4.0 MB 00:00 #9 9.461 added from: http://tf-mirrors.gz1.opensdn.io/re 13 MB/s | 939 kB 00:00 #9 10.36 added from: http://tf-mirrors.gz1.opensdn.io/re 5.1 MB/s | 2.3 MB 00:00 #9 11.59 added from: http://tf-mirrors.gz1.opensdn.io/re 951 kB/s | 392 kB 00:00 #9 11.78 added from: http://tf-mirrors.gz1.opensdn.io/re 8.9 MB/s | 451 kB 00:00 #9 11.98 added from: http://tf-mirrors.gz1.opensdn.io/re 488 kB/s | 16 kB 00:00 #9 12.29 added from: http://tf-mirrors.gz1.opensdn.io/re 6.7 kB/s | 257 B 00:00 #9 12.52 added from: http://tf-mirrors.gz1.opensdn.io/re 303 kB/s | 13 kB 00:00 #9 12.78 added from: http://tf-mirrors.gz1.opensdn.io/re 2.3 MB/s | 64 kB 00:00 #9 13.76 added from: http://tf-mirrors.gz1.opensdn.io/re 46 MB/s | 30 MB 00:00 #9 24.16 Third parties for OpenSDN 28 MB/s | 5.1 MB 00:00 #9 29.48 Dependencies resolved. #9 29.48 ================================================================================ #9 29.48 Package Arch Version Repository Size #9 29.48 ================================================================================ #9 29.48 Installing: #9 29.48 iputils x86_64 20210202-10.el9_5 tf-mirrors.ci_repos_yum9-baseos 168 k #9 29.48 libffi-devel x86_64 3.4.2-8.el9 tf-mirrors.ci_repos_yum9-appstream 28 k #9 29.48 #9 29.48 Transaction Summary #9 29.48 ================================================================================ #9 29.48 Install 2 Packages #9 29.48 #9 29.48 Total download size: 196 k #9 29.48 Installed size: 519 k #9 29.48 Downloading Packages: #9 29.48 (1/2): libffi-devel-3.4.2-8.el9.x86_64.rpm 2.0 MB/s | 28 kB 00:00 #9 29.48 (2/2): iputils-20210202-10.el9_5.x86_64.rpm 8.6 MB/s | 168 kB 00:00 #9 29.48 -------------------------------------------------------------------------------- #9 29.48 Total 9.4 MB/s | 196 kB 00:00 #9 29.48 Running transaction check #9 29.52 Transaction check succeeded. #9 29.52 Running transaction test #9 29.56 Transaction test succeeded. #9 29.58 Running transaction #9 29.59 Preparing : 1/1 #9 29.81 Installing : libffi-devel-3.4.2-8.el9.x86_64 1/2 #9 29.81 Installing : iputils-20210202-10.el9_5.x86_64 2/2 #9 29.81 Running scriptlet: iputils-20210202-10.el9_5.x86_64 2/2 #9 30.15 Verifying : iputils-20210202-10.el9_5.x86_64 1/2 #9 30.15 Verifying : libffi-devel-3.4.2-8.el9.x86_64 2/2 #9 30.15 #9 30.15 Installed: #9 30.15 iputils-20210202-10.el9_5.x86_64 libffi-devel-3.4.2-8.el9.x86_64 #9 30.15 #9 30.15 Complete! #9 30.94 Looking in indexes: http://tf-mirrors.gz1.opensdn.io/root/pypi/+simple/ #9 32.26 Collecting cryptography<3.5 #9 32.26 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/996/5c46c674ba8cc/cryptography-3.4.8-cp36-abi3-manylinux_2_24_x86_64.whl (3.0 MB) #9 32.52 Collecting importlib-resources<5.1 #9 32.52 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/223/8159eb743bd85/importlib_resources-5.0.7-py3-none-any.whl (24 kB) #9 33.54 Collecting cffi>=1.12 #9 33.65 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/61d/028e90346df14/cffi-2.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (216 kB) #9 33.65 Collecting pycparser #9 33.65 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e5c/6e8d3fbad5347/pycparser-2.23-py3-none-any.whl (118 kB) #9 34.04 Installing collected packages: pycparser, cffi, importlib-resources, cryptography #9 34.88 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv #9 34.88 Successfully installed cffi-2.0.0 cryptography-3.4.8 importlib-resources-5.0.7 pycparser-2.23 #9 35.94 Looking in indexes: http://tf-mirrors.gz1.opensdn.io/root/pypi/+simple/ #9 36.21 Collecting ansible #9 36.37 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/3a5/ca5152e4547d5/ansible-8.7.0.tar.gz (49.3 MB) #9 61.01 Installing build dependencies: started #9 66.45 Installing build dependencies: finished with status 'done' #9 66.49 Getting requirements to build wheel: started #9 129.3 Getting requirements to build wheel: still running... #9 129.3 Getting requirements to build wheel: finished with status 'done' #9 129.3 Preparing metadata (pyproject.toml): started #9 185.6 Preparing metadata (pyproject.toml): finished with status 'done' #9 185.7 Collecting ansible-core #9 185.8 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f54/2e702ee31fb04/ansible_core-2.15.13.tar.gz (3.1 MB) #9 188.0 Installing build dependencies: started #9 192.9 Installing build dependencies: finished with status 'done' #9 192.9 Getting requirements to build wheel: started #9 193.5 Getting requirements to build wheel: finished with status 'done' #9 193.5 Preparing metadata (pyproject.toml): started #9 194.0 Preparing metadata (pyproject.toml): finished with status 'done' #9 194.1 Collecting PyYAML>=5.1 #9 194.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/d76/623373421df22/pyyaml-6.0.3.tar.gz (130 kB) #9 194.4 Installing build dependencies: started #9 262.0 Installing build dependencies: still running... #9 322.4 Installing build dependencies: still running... #9 329.4 Installing build dependencies: finished with status 'done' #9 329.5 Getting requirements to build wheel: started #9 330.7 Getting requirements to build wheel: finished with status 'done' #9 330.7 Preparing metadata (pyproject.toml): started #9 331.0 Preparing metadata (pyproject.toml): finished with status 'done' #9 331.0 Requirement already satisfied: cryptography in /usr/local/lib64/python3.9/site-packages (from ansible-core) (3.4.8) #9 331.0 Requirement already satisfied: importlib-resources<5.1,>=5.0 in /usr/local/lib/python3.9/site-packages (from ansible-core) (5.0.7) #9 331.0 Collecting resolvelib<1.1.0,>=0.5.3 #9 331.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/04c/e76cbd63fded2/resolvelib-1.0.1.tar.gz (21 kB) #9 331.2 Installing build dependencies: started #9 340.2 Installing build dependencies: finished with status 'done' #9 340.2 Getting requirements to build wheel: started #9 340.4 Getting requirements to build wheel: finished with status 'done' #9 340.4 Preparing metadata (pyproject.toml): started #9 340.6 Preparing metadata (pyproject.toml): finished with status 'done' #9 340.6 Collecting jinja2>=3.0.0 #9 340.6 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/013/7fb05990d35f1/jinja2-3.1.6.tar.gz (245 kB) #9 340.9 Installing build dependencies: started #9 342.7 Installing build dependencies: finished with status 'done' #9 342.7 Getting requirements to build wheel: started #9 342.8 Getting requirements to build wheel: finished with status 'done' #9 342.8 Preparing metadata (pyproject.toml): started #9 342.9 Preparing metadata (pyproject.toml): finished with status 'done' #9 342.9 Requirement already satisfied: packaging in /usr/local/lib/python3.9/site-packages (from ansible-core) (26.0) #9 343.1 Collecting MarkupSafe>=2.0 #9 343.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/722/695808f4b6457/markupsafe-3.0.3.tar.gz (80 kB) #9 343.3 Installing build dependencies: started #9 347.9 Installing build dependencies: finished with status 'done' #9 347.9 Getting requirements to build wheel: started #9 348.2 Getting requirements to build wheel: finished with status 'done' #9 348.2 Preparing metadata (pyproject.toml): started #9 348.4 Preparing metadata (pyproject.toml): finished with status 'done' #9 348.4 Requirement already satisfied: cffi>=1.12 in /usr/local/lib64/python3.9/site-packages (from cryptography->ansible-core) (2.0.0) #9 348.4 Requirement already satisfied: pycparser in /usr/local/lib/python3.9/site-packages (from cffi>=1.12->cryptography->ansible-core) (2.23) #9 348.4 Building wheels for collected packages: ansible, ansible-core, jinja2, PyYAML, resolvelib, MarkupSafe #9 348.4 Building wheel for ansible (pyproject.toml): started #9 417.9 Building wheel for ansible (pyproject.toml): still running... #9 427.1 Building wheel for ansible (pyproject.toml): finished with status 'done' #9 427.2 Created wheel for ansible: filename=ansible-8.7.0-py3-none-any.whl size=48371394 sha256=273d27a6c606fb262796b12f568b713efbae33d80d7161950b7594a57ee8d2c3 #9 427.2 Stored in directory: /root/.cache/pip/wheels/45/76/58/9502290a467417ab1444d84c63019adb1daaed6d18d308b817 #9 427.3 Building wheel for ansible-core (pyproject.toml): started #9 428.8 Building wheel for ansible-core (pyproject.toml): finished with status 'done' #9 428.9 Created wheel for ansible-core: filename=ansible_core-2.15.13-py3-none-any.whl size=2251441 sha256=466ad6ca017f5d5c66c8ff88f29ea202f4e654f8df317fc0eda91bec0abb6463 #9 428.9 Stored in directory: /root/.cache/pip/wheels/de/f1/0f/5bdba5e828d49ff45930d6032cef3961e2e673467b0d7bbb1e #9 428.9 Building wheel for jinja2 (pyproject.toml): started #9 429.0 Building wheel for jinja2 (pyproject.toml): finished with status 'done' #9 429.0 Created wheel for jinja2: filename=jinja2-3.1.6-py3-none-any.whl size=134897 sha256=005a2fc379b662ac007c271a8122f7a7db49bb67fbedfc85db50fccde34d839f #9 429.0 Stored in directory: /root/.cache/pip/wheels/7b/c3/fc/fe2ea80be37d89f3c720e53076aac0407f529f0c29356a6215 #9 429.0 Building wheel for PyYAML (pyproject.toml): started #9 429.4 Building wheel for PyYAML (pyproject.toml): finished with status 'done' #9 429.4 Created wheel for PyYAML: filename=pyyaml-6.0.3-cp39-cp39-linux_x86_64.whl size=45461 sha256=72b602081c4fee9b92b8f95cd09b6c4d86af0c051a1061d16e4a2c3701c984fd #9 429.4 Stored in directory: /root/.cache/pip/wheels/79/fb/92/ef421e052606484d88d2a8592c227e766d44081f6c09bdecbb #9 429.4 Building wheel for resolvelib (pyproject.toml): started #9 429.6 Building wheel for resolvelib (pyproject.toml): finished with status 'done' #9 429.6 Created wheel for resolvelib: filename=resolvelib-1.0.1-py2.py3-none-any.whl size=17236 sha256=119ab25f533cd1f1766119f5c7b6b4b7b8db48ccd3a8cf16ffcd4972f479d1f0 #9 429.6 Stored in directory: /root/.cache/pip/wheels/9b/e8/75/66577720290e60215abc77f8972bc2f567d4058bd85a58f881 #9 429.6 Building wheel for MarkupSafe (pyproject.toml): started #9 430.1 Building wheel for MarkupSafe (pyproject.toml): finished with status 'done' #9 430.1 Created wheel for MarkupSafe: filename=markupsafe-3.0.3-cp39-cp39-linux_x86_64.whl size=21265 sha256=d568240a3a5b71ed652c3d9f16fe9cdd6fa809d365a5e2a3b0a8017fda47d1ea #9 430.1 Stored in directory: /root/.cache/pip/wheels/da/bd/2a/6dd1ba50acf54588ceab2b7322c7a9bc5f41b28772c485e8fc #9 430.1 Successfully built ansible ansible-core jinja2 PyYAML resolvelib MarkupSafe #9 430.4 Installing collected packages: MarkupSafe, resolvelib, PyYAML, jinja2, ansible-core, ansible #9 435.1 Successfully installed MarkupSafe-3.0.3 PyYAML-6.0.3 ansible-8.7.0 ansible-core-2.15.13 jinja2-3.1.6 resolvelib-1.0.1 #9 435.1 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv #9 438.1 75 files removed #9 438.2 2026-02-11 15:20:03 URL:http://nexus.gz1.opensdn.io/repository/external-web-cache/Juniper/ansible-junos-stdlib/archive/2.4.2.tar.gz [108498/108498] -> "Juniper.junos" [1] #9 439.1 Starting galaxy role install process #9 439.1 - extracting Juniper.junos to /root/.ansible/roles/Juniper.junos #9 439.1 - Juniper.junos was installed successfully #9 439.4 Looking in indexes: http://tf-mirrors.gz1.opensdn.io/root/pypi/+simple/, http://localhost:6667/pip/simple #9 439.4 Collecting device_manager==0.1.dev0 #9 439.4 Downloading http://localhost:6667/pip/simple/device-manager/device_manager-0.1.dev0-py3-none-any.whl (321 kB) #9 439.5 Collecting fabric_ansible==0.1.dev0 #9 439.5 Downloading http://localhost:6667/pip/simple/fabric-ansible/fabric_ansible-0.1.dev0-py3-none-any.whl (41 kB) #9 439.5 Requirement already satisfied: timeout-decorator in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (0.5.0) #9 439.5 Requirement already satisfied: bitarray in /usr/local/lib64/python3.9/site-packages (from device_manager==0.1.dev0) (3.8.0) #9 439.5 Requirement already satisfied: bottle<0.13 in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (0.12.25) #9 439.6 Collecting jsonschema #9 439.6 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/3fb/a0169e345c717/jsonschema-4.25.1-py3-none-any.whl (90 kB) #9 440.0 Collecting cityhash #9 440.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/428/9853163c77966/cityhash-0.4.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (555 kB) #9 440.1 Collecting attrdict #9 440.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/943/2e3498c74ff7e/attrdict-2.0.1-py2.py3-none-any.whl (9.9 kB) #9 440.1 Requirement already satisfied: netaddr<1 in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (0.10.1) #9 440.1 Collecting ncclient #9 440.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/318/e8e3e72b1d2a7/ncclient-0.7.0.tar.gz (116 kB) #9 440.2 Preparing metadata (setup.py): started #9 440.4 Preparing metadata (setup.py): finished with status 'done' #9 440.5 Collecting netifaces #9 440.5 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e76/c7f351e044472/netifaces-0.11.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (32 kB) #9 440.5 Collecting junos-eznc #9 440.5 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/a4f/9cc290fde95b8/junos_eznc-2.7.6-py2.py3-none-any.whl (207 kB) #9 440.6 Requirement already satisfied: gevent in /usr/local/lib64/python3.9/site-packages (from device_manager==0.1.dev0) (25.9.1) #9 440.6 Requirement already satisfied: contrail-config-common==0.1.dev0 in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (0.1.dev0) #9 440.6 Collecting inflection #9 440.6 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f38/b2b640938a4f3/inflection-0.5.1-py2.py3-none-any.whl (9.5 kB) #9 441.5 Collecting lxml #9 441.5 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/6cd/aefac66e8b8f3/lxml-6.0.2-cp39-cp39-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (5.3 MB) #9 442.0 Collecting psutil #9 442.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/076/a2d2f923fd482/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (155 kB) #9 442.1 Collecting docker #9 442.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/c96/b93b7f0a746f9/docker-7.1.0-py3-none-any.whl (147 kB) #9 442.1 Requirement already satisfied: stevedore in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (5.5.0) #9 442.1 Requirement already satisfied: kombu in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (5.6.2) #9 442.2 Collecting pysnmp #9 442.2 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e3f/ed6eab479a4ec/pysnmp-7.1.21-py3-none-any.whl (343 kB) #9 442.3 Requirement already satisfied: xmltodict==0.12.0 in /usr/local/lib/python3.9/site-packages (from fabric_ansible==0.1.dev0) (0.12.0) #9 442.3 Collecting pyroute2 #9 442.3 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e7d/485ce8274cbf4/pyroute2-0.9.5-py3-none-any.whl (480 kB) #9 442.4 Collecting subprocess32 #9 442.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/eb2/937c80497978d/subprocess32-3.5.4.tar.gz (97 kB) #9 442.4 Preparing metadata (setup.py): started #9 442.6 Preparing metadata (setup.py): finished with status 'done' #9 442.6 Collecting pycrypto #9 442.6 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f2c/e1e989b272cfc/pycrypto-2.6.1.tar.gz (446 kB) #9 442.7 Preparing metadata (setup.py): started #9 442.9 Preparing metadata (setup.py): finished with status 'done' #9 442.9 Requirement already satisfied: jinja2 in /usr/local/lib/python3.9/site-packages (from fabric_ansible==0.1.dev0) (3.1.6) #9 442.9 Collecting jsnapy #9 442.9 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/520/2fd0910cecd32/jsnapy-1.3.8-py2.py3-none-any.whl (50 kB) #9 442.9 Requirement already satisfied: cassandra-driver in /usr/local/lib64/python3.9/site-packages (from contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (3.29.3) #9 442.9 Requirement already satisfied: greenlet in /usr/local/lib64/python3.9/site-packages (from contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (3.2.4) #9 442.9 Requirement already satisfied: kazoo in /usr/local/lib/python3.9/site-packages (from contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (2.10.0) #9 442.9 Requirement already satisfied: simplejson in /usr/local/lib64/python3.9/site-packages (from contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (3.20.2) #9 442.9 Requirement already satisfied: sandesh-common==0.1.dev0 in /usr/local/lib/python3.9/site-packages (from contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (0.1.dev0) #9 442.9 Requirement already satisfied: requests in /usr/local/lib/python3.9/site-packages (from contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (2.32.5) #9 442.9 Requirement already satisfied: sandesh==0.1.dev0 in /usr/local/lib/python3.9/site-packages (from contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (0.1.dev0) #9 443.0 Requirement already satisfied: contrail-api-client==0.1.dev0 in /usr/local/lib/python3.9/site-packages (from contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (0.1.dev0) #9 443.0 Requirement already satisfied: fysom in /usr/local/lib/python3.9/site-packages (from sandesh==0.1.dev0->contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (2.1.6) #9 443.0 Requirement already satisfied: six in /usr/lib/python3.9/site-packages (from attrdict->device_manager==0.1.dev0) (1.15.0) #9 443.0 Requirement already satisfied: urllib3>=1.26.0 in /usr/local/lib/python3.9/site-packages (from docker->device_manager==0.1.dev0) (2.6.3) #9 443.0 Requirement already satisfied: zope.interface in /usr/local/lib64/python3.9/site-packages (from gevent->device_manager==0.1.dev0) (8.0.1) #9 443.0 Requirement already satisfied: zope.event in /usr/local/lib/python3.9/site-packages (from gevent->device_manager==0.1.dev0) (6.0) #9 443.0 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib64/python3.9/site-packages (from jinja2->fabric_ansible==0.1.dev0) (3.0.3) #9 443.0 Collecting icdiff==1.9.1 #9 443.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/669/72dd03318da55/icdiff-1.9.1.tar.gz (9.1 kB) #9 443.1 Preparing metadata (setup.py): started #9 443.2 Preparing metadata (setup.py): finished with status 'done' #9 443.3 Collecting pyparsing #9 443.3 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/850/ba148bd908d7e/pyparsing-3.3.2-py3-none-any.whl (122 kB) #9 443.4 Collecting configparser #9 443.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/fee/5e1f3db4156dc/configparser-7.2.0-py3-none-any.whl (17 kB) #9 443.4 Collecting future #9 443.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/929/292d34f5872e7/future-1.0.0-py3-none-any.whl (491 kB) #9 443.5 Collecting colorama #9 443.5 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/4f1/d9991f5acc0ca/colorama-0.4.6-py2.py3-none-any.whl (25 kB) #9 443.6 Collecting jsonschema-specifications>=2023.03.6 #9 443.6 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/988/02fee3a11ee76/jsonschema_specifications-2025.9.1-py3-none-any.whl (18 kB) #9 443.7 Collecting referencing>=0.28.4 #9 443.7 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e86/99adbbf8b5c7d/referencing-0.36.2-py3-none-any.whl (26 kB) #9 445.1 Collecting rpds-py>=0.7.1 #9 445.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/2fd/50659a069c15e/rpds_py-0.27.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (384 kB) #9 445.2 Collecting attrs>=22.2.0 #9 445.2 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/adc/f7e2a1fb3b36a/attrs-25.4.0-py3-none-any.whl (67 kB) #9 445.2 Collecting yamlloader #9 445.2 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/d9e/a9948759732ea/yamlloader-1.6.0-py3-none-any.whl (7.8 kB) #9 445.3 Collecting scp>=0.7.0 #9 445.3 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/9e7/f721e5ac563c3/scp-0.15.0-py2.py3-none-any.whl (8.8 kB) #9 445.3 Collecting transitions #9 445.3 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/024/63248f2b668d8/transitions-0.9.3-py2.py3-none-any.whl (112 kB) #9 445.4 Requirement already satisfied: PyYAML>=5.1 in /usr/local/lib64/python3.9/site-packages (from junos-eznc->device_manager==0.1.dev0) (6.0.3) #9 445.4 Collecting pyserial #9 445.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/c44/51db6ba391ca6/pyserial-3.5-py2.py3-none-any.whl (90 kB) #9 445.5 Collecting paramiko>=3.5.0 #9 445.5 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/0e2/0e00ac666503b/paramiko-4.0.0-py3-none-any.whl (223 kB) #9 445.5 Requirement already satisfied: amqp<6.0.0,>=5.1.1 in /usr/local/lib/python3.9/site-packages (from kombu->device_manager==0.1.dev0) (5.3.1) #9 445.5 Requirement already satisfied: packaging in /usr/local/lib/python3.9/site-packages (from kombu->device_manager==0.1.dev0) (26.0) #9 445.5 Requirement already satisfied: vine==5.1.0 in /usr/local/lib/python3.9/site-packages (from kombu->device_manager==0.1.dev0) (5.1.0) #9 445.5 Requirement already satisfied: tzdata>=2025.2 in /usr/local/lib/python3.9/site-packages (from kombu->device_manager==0.1.dev0) (2025.3) #9 445.7 Collecting pyasn1!=0.5.0,>=0.4.8 #9 445.7 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/1eb/26d860996a18e/pyasn1-0.6.2-py3-none-any.whl (83 kB) #9 445.9 Collecting bcrypt>=3.2 #9 445.9 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/611/f0a17aa4a25a6/bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl (278 kB) #9 446.0 Collecting invoke>=2.0 #9 446.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/241/3bc441b376e5c/invoke-2.2.1-py3-none-any.whl (160 kB) #9 446.0 Requirement already satisfied: cryptography>=3.3 in /usr/local/lib64/python3.9/site-packages (from paramiko>=3.5.0->junos-eznc->device_manager==0.1.dev0) (3.4.8) #9 446.1 Collecting pynacl>=1.5 #9 446.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/c8a/231e36ec2cab0/pynacl-1.6.2-cp38-abi3-manylinux_2_34_x86_64.whl (1.4 MB) #9 446.2 Collecting typing-extensions>=4.4.0 #9 446.2 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f0f/a19c6845758ab/typing_extensions-4.15.0-py3-none-any.whl (44 kB) #9 446.2 Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib64/python3.9/site-packages (from requests->contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (3.4.4) #9 446.2 Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/site-packages (from requests->contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (2026.1.4) #9 446.2 Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/site-packages (from requests->contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (3.11) #9 446.3 Requirement already satisfied: geomet>=1.1 in /usr/local/lib/python3.9/site-packages (from cassandra-driver->contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (1.1.0) #9 446.4 Requirement already satisfied: setuptools>=75.8.2 in /usr/local/lib/python3.9/site-packages (from zope.event->gevent->device_manager==0.1.dev0) (82.0.0) #9 446.4 Requirement already satisfied: cffi>=1.12 in /usr/local/lib64/python3.9/site-packages (from cryptography>=3.3->paramiko>=3.5.0->junos-eznc->device_manager==0.1.dev0) (2.0.0) #9 446.4 Requirement already satisfied: click in /usr/local/lib/python3.9/site-packages (from geomet>=1.1->cassandra-driver->contrail-config-common==0.1.dev0->device_manager==0.1.dev0) (8.1.8) #9 446.5 Requirement already satisfied: pycparser in /usr/local/lib/python3.9/site-packages (from cffi>=1.12->cryptography>=3.3->paramiko>=3.5.0->junos-eznc->device_manager==0.1.dev0) (2.23) #9 446.5 Using legacy 'setup.py install' for icdiff, since package 'wheel' is not installed. #9 446.5 Using legacy 'setup.py install' for ncclient, since package 'wheel' is not installed. #9 446.5 Using legacy 'setup.py install' for pycrypto, since package 'wheel' is not installed. #9 446.5 Using legacy 'setup.py install' for subprocess32, since package 'wheel' is not installed. #9 446.7 Installing collected packages: pynacl, invoke, bcrypt, typing-extensions, rpds-py, paramiko, lxml, attrs, yamlloader, transitions, scp, referencing, pyserial, pyparsing, ncclient, pyasn1, junos-eznc, jsonschema-specifications, icdiff, future, configparser, colorama, subprocess32, pysnmp, pyroute2, pycrypto, psutil, netifaces, jsonschema, jsnapy, inflection, docker, cityhash, attrdict, fabric-ansible, device-manager #9 447.0 Running setup.py install for ncclient: started #9 447.3 Running setup.py install for ncclient: finished with status 'done' #9 447.4 Running setup.py install for icdiff: started #9 447.6 Running setup.py install for icdiff: finished with status 'done' #9 447.7 Running setup.py install for subprocess32: started #9 447.9 Running setup.py install for subprocess32: finished with status 'done' #9 448.0 Running setup.py install for pycrypto: started #9 455.2 Running setup.py install for pycrypto: finished with status 'done' #9 455.4 Successfully installed attrdict-2.0.1 attrs-25.4.0 bcrypt-5.0.0 cityhash-0.4.10 colorama-0.4.6 configparser-7.2.0 device-manager-0.1.dev0 docker-7.1.0 fabric-ansible-0.1.dev0 future-1.0.0 icdiff-1.9.1 inflection-0.5.1 invoke-2.2.1 jsnapy-1.3.8 jsonschema-4.25.1 jsonschema-specifications-2025.9.1 junos-eznc-2.7.6 lxml-6.0.2 ncclient-0.7.0 netifaces-0.11.0 paramiko-4.0.0 psutil-7.2.2 pyasn1-0.6.2 pycrypto-2.6.1 pynacl-1.6.2 pyparsing-3.3.2 pyroute2-0.9.5 pyserial-3.5 pysnmp-7.1.21 referencing-0.36.2 rpds-py-0.27.1 scp-0.15.0 subprocess32-3.5.4 transitions-0.9.3 typing-extensions-4.15.0 yamlloader-1.6.0 #9 455.4 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv #9 455.6 DBG: /opt/ last tar.gz = fabric_ansible_playbooks-0.1.dev0.tar.gz #9 DONE 459.5s #10 [stage-1 4/4] COPY *.sh / #10 DONE 0.1s #11 exporting to image #11 exporting layers #11 exporting layers 4.1s done #11 writing image sha256:e68833df4c35c4ac7eeb44c080198e49615fbc214b8ac41c3d98941f7a3964f3 done #11 naming to nexus.gz1.opensdn.io:5101/opensdn-controller-config-devicemgr:master-2_5_1_4-1_6 done #11 DONE 4.1s 2 warnings found (use docker --debug to expand):  - InvalidDefaultArgInFrom: Default value for ARG ${BUILD_IMAGE} results in empty or invalid base image name (line 4) - InvalidDefaultArgInFrom: Default value for ARG ${CONTRAIL_REGISTRY}/opensdn-controller-config-base:${CONTRAIL_CONTAINER_TAG} results in empty or invalid base image name (line 6) 2026-02-11 15:20:29,403: INFO: Docker build duration: 543 seconds The push refers to repository [nexus.gz1.opensdn.io:5101/opensdn-controller-config-devicemgr] f03a0e0dbc9b: Preparing 5259883c156b: Preparing 3d13ba3b9e6a: Preparing d8a263182b8d: Preparing 90e5beea1084: Preparing 7cf4bd8d9b03: Preparing a3bb343097b0: Preparing 9d7ad84cc059: Preparing 7e6ca6bc78fa: Preparing add7d7bb7724: Preparing 2404cafab567: Preparing f2a69db8b388: Preparing 3aa34b32703e: Preparing a81eb449a704: Preparing 246bcc675c13: Preparing 97ad7f767993: Preparing 44343de3ea1d: Preparing 7cf4bd8d9b03: Waiting a3bb343097b0: Waiting 9d7ad84cc059: Waiting 7e6ca6bc78fa: Waiting add7d7bb7724: Waiting 2404cafab567: Waiting f2a69db8b388: Waiting 3aa34b32703e: Waiting a81eb449a704: Waiting 246bcc675c13: Waiting 97ad7f767993: Waiting 44343de3ea1d: Waiting 90e5beea1084: Layer already exists d8a263182b8d: Layer already exists a3bb343097b0: Layer already exists 7cf4bd8d9b03: Layer already exists 9d7ad84cc059: Layer already exists 7e6ca6bc78fa: Layer already exists add7d7bb7724: Layer already exists 2404cafab567: Layer already exists 3aa34b32703e: Layer already exists f03a0e0dbc9b: Pushed 3d13ba3b9e6a: Pushed f2a69db8b388: Layer already exists a81eb449a704: Layer already exists 44343de3ea1d: Layer already exists 246bcc675c13: Layer already exists 97ad7f767993: Layer already exists 5259883c156b: Pushed master-2_5_1_4-1_6: digest: sha256:1a8d61a90140340365d06367bdb5f033667180bf1f6634f74748dd08e19e4be1 size: 3878 2026-02-11 15:20:41,722: INFO: Building opensdn-controller-config-devicemgr finished successfully, duration: 555 seconds REPOSITORY TAG IMAGE ID CREATED SIZE nexus.gz1.opensdn.io:5101/opensdn-controller-config-devicemgr master-2_5_1_4-1_6 e68833df4c35 16 seconds ago 971MB nexus.gz1.opensdn.io:5101/opensdn-vrouter-agent master-2_5_1_4-1_6 c294a14781b1 6 minutes ago 1.8GB nexus.gz1.opensdn.io:5101/opensdn-tools master-2_5_1_4-1_6 9bae16a19b8e 6 minutes ago 1.48GB nexus.gz1.opensdn.io:5101/opensdn-vrouter-kernel-build-init master-2_5_1_4-1_6 9dd55f0cacc3 6 minutes ago 627MB nexus.gz1.opensdn.io:5101/opensdn-controller-control-named master-2_5_1_4-1_6 335c760692cf 6 minutes ago 693MB nexus.gz1.opensdn.io:5101/opensdn-nodemgr master-2_5_1_4-1_6 7c0d7afa469d 7 minutes ago 775MB nexus.gz1.opensdn.io:5101/opensdn-status master-2_5_1_4-1_6 fba972dfd087 7 minutes ago 775MB nexus.gz1.opensdn.io:5101/opensdn-vrouter-agent-dpdk master-2_5_1_4-1_6 02bbb098e9c7 7 minutes ago 890MB nexus.gz1.opensdn.io:5101/opensdn-controller-config-svcmonitor master-2_5_1_4-1_6 355987cfb8a6 7 minutes ago 635MB nexus.gz1.opensdn.io:5101/opensdn-analytics-collector master-2_5_1_4-1_6 db1f30f4f6e0 7 minutes ago 959MB nexus.gz1.opensdn.io:5101/opensdn-controller-config-api master-2_5_1_4-1_6 ccb0e0e2b8a1 7 minutes ago 650MB nexus.gz1.opensdn.io:5101/opensdn-analytics-query-engine master-2_5_1_4-1_6 f224d7432039 7 minutes ago 840MB nexus.gz1.opensdn.io:5101/opensdn-controller-config-dnsmasq master-2_5_1_4-1_6 f38dcb24277e 7 minutes ago 630MB nexus.gz1.opensdn.io:5101/opensdn-controller-control-control master-2_5_1_4-1_6 ef08e0bb4b74 7 minutes ago 1.23GB nexus.gz1.opensdn.io:5101/opensdn-vrouter-kernel-init master-2_5_1_4-1_6 dfd43cea54bd 8 minutes ago 369MB nexus.gz1.opensdn.io:5101/opensdn-tor-agent master-2_5_1_4-1_6 d0ed201e3920 8 minutes ago 675MB nexus.gz1.opensdn.io:5101/opensdn-debug master-2_5_1_4-1_6 2eac6248ca8b 8 minutes ago 348MB nexus.gz1.opensdn.io:5101/opensdn-openstack-compute-init master-2_5_1_4-1_6 6333a2e9bbff 8 minutes ago 348MB nexus.gz1.opensdn.io:5101/opensdn-controller-control-dns master-2_5_1_4-1_6 d46b46ab0f1b 8 minutes ago 995MB nexus.gz1.opensdn.io:5101/opensdn-analytics-api master-2_5_1_4-1_6 77d55d9075be 8 minutes ago 638MB nexus.gz1.opensdn.io:5101/opensdn-analytics-snmp-collector master-2_5_1_4-1_6 1c34a03784dd 8 minutes ago 831MB nexus.gz1.opensdn.io:5101/opensdn-analytics-snmp-topology master-2_5_1_4-1_6 f8c036b9900b 8 minutes ago 831MB nexus.gz1.opensdn.io:5101/opensdn-controller-webui-job master-2_5_1_4-1_6 e3e6e60221bc 8 minutes ago 859MB nexus.gz1.opensdn.io:5101/opensdn-controller-webui-web master-2_5_1_4-1_6 cee445450a95 8 minutes ago 859MB nexus.gz1.opensdn.io:5101/opensdn-vrouter-kernel-init-dpdk master-2_5_1_4-1_6 ae122d449d6d 8 minutes ago 683MB nexus.gz1.opensdn.io:5101/opensdn-openstack-heat-init master-2_5_1_4-1_6 eb9fa1ace672 9 minutes ago 364MB nexus.gz1.opensdn.io:5101/opensdn-controller-config-schema master-2_5_1_4-1_6 4fcc22f3a754 9 minutes ago 614MB nexus.gz1.opensdn.io:5101/opensdn-analytics-alarm-gen master-2_5_1_4-1_6 fd725aea53ac 9 minutes ago 629MB nexus.gz1.opensdn.io:5101/opensdn-node-init master-2_5_1_4-1_6 777cb728b21e 9 minutes ago 613MB nexus.gz1.opensdn.io:5101/opensdn-kubernetes-cni-init master-2_5_1_4-1_6 eb73b5e5e716 9 minutes ago 633MB nexus.gz1.opensdn.io:5101/opensdn-provisioner master-2_5_1_4-1_6 04e23bf4316e 9 minutes ago 613MB nexus.gz1.opensdn.io:5101/opensdn-kubernetes-kube-manager master-2_5_1_4-1_6 92ed893ac5ed 9 minutes ago 617MB nexus.gz1.opensdn.io:5101/opensdn-openstack-neutron-init master-2_5_1_4-1_6 f1cf2f104ed1 9 minutes ago 364MB nexus.gz1.opensdn.io:5101/opensdn-external-redis master-2_5_1_4-1_6 a36e0eae17ba 9 minutes ago 171MB nexus.gz1.opensdn.io:5101/opensdn-external-haproxy master-2_5_1_4-1_6 38e69214b4bf 9 minutes ago 144MB nexus.gz1.opensdn.io:5101/opensdn-deployment-test master-2_5_1_4-1_6 0aa5ff7a0f07 12 minutes ago 430MB nexus.gz1.opensdn.io:5101/opensdn-external-zookeeper master-2_5_1_4-1_6 cb84bf93839f 12 minutes ago 301MB nexus.gz1.opensdn.io:5101/opensdn-test-test master-2_5_1_4-1_6 51011cbae76c 13 minutes ago 1.74GB opensdn-test-test master-2_5_1_4-1_6 51011cbae76c 13 minutes ago 1.74GB nexus.gz1.opensdn.io:5101/opensdn-controller-webui-base master-2_5_1_4-1_6 10f2aece8ea8 14 minutes ago 859MB nexus.gz1.opensdn.io:5101/opensdn-external-stunnel master-2_5_1_4-1_6 ef92b70e30f9 15 minutes ago 399MB nexus.gz1.opensdn.io:5101/opensdn-external-rabbitmq master-2_5_1_4-1_6 cb9af43327c3 15 minutes ago 363MB nexus.gz1.opensdn.io:5101/opensdn-external-cassandra master-2_5_1_4-1_6 64f10a59040d 15 minutes ago 331MB nexus.gz1.opensdn.io:5101/opensdn-external-kafka master-2_5_1_4-1_6 405ec8e7d172 15 minutes ago 392MB nexus.gz1.opensdn.io:5101/opensdn-analytics-snmp-base master-2_5_1_4-1_6 b8acec207ad0 15 minutes ago 830MB nexus.gz1.opensdn.io:5101/opensdn-vrouter-base master-2_5_1_4-1_6 0880db43f2fc 15 minutes ago 683MB nexus.gz1.opensdn.io:5101/opensdn-external-rsyslogd master-2_5_1_4-1_6 4a8f7e3feace 15 minutes ago 360MB nexus.gz1.opensdn.io:5101/opensdn-controller-control-base master-2_5_1_4-1_6 725626589877 15 minutes ago 674MB nexus.gz1.opensdn.io:5101/opensdn-analytics-base master-2_5_1_4-1_6 49dbb5e9aa98 16 minutes ago 613MB nexus.gz1.opensdn.io:5101/opensdn-base master-2_5_1_4-1_6 2706ea356966 16 minutes ago 613MB nexus.gz1.opensdn.io:5101/opensdn-controller-config-base master-2_5_1_4-1_6 8df1f44e29cc 16 minutes ago 613MB nexus.gz1.opensdn.io:5101/opensdn-general-base master-2_5_1_4-1_6 47fcc6be6fa8 17 minutes ago 348MB nexus.gz1.opensdn.io:5101/opensdn-container-builder-src master-2_5_1_4-1_6 77f8b7442456 18 minutes ago 2.48MB tf-dev-sandbox compile f53095d9c872 22 minutes ago 24.2GB nexus.gz1.opensdn.io:5101/opensdn-charms-src master-2_5_1_4-1_6 6a529187f936 23 minutes ago 6.05MB nexus.gz1.opensdn.io:5101/opensdn-ansible-deployer-src master-2_5_1_4-1_6 1f55c5462e9f 23 minutes ago 1.4MB nexus.gz1.opensdn.io:5101/opensdn-container-builder-src 2c912338e3ed 23 minutes ago 2.46MB nexus.gz1.opensdn.io:5101/opensdn-build-manifest-src master-2_5_1_4-1_6 865e9ec8deef 23 minutes ago 4.17kB nexus.gz1.opensdn.io:5101/opensdn-kolla-ansible-src master-2_5_1_4-1_6 0e706d213b69 23 minutes ago 32.7MB nexus.gz1.opensdn.io:5101/tf-dev-sandbox frozen 7c15977e890d 3 hours ago 23.4GB