2025-11-21 15:27:40,225: INFO: Building opensdn-controller-config-devicemgr 2025-11-21 15:27:40,378: 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=r25.1-2_4_1_0-1 --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 0.4s #2 [internal] load metadata for docker.io/library/tf-dev-sandbox:compile #2 DONE 0.0s #3 [internal] load metadata for nexus.gz1.opensdn.io:5101/opensdn-controller-config-base:r25.1-2_4_1_0-1 #3 DONE 0.0s #4 [internal] load .dockerignore #4 transferring context: #4 transferring context: 2B 0.0s done #4 DONE 0.3s #5 [internal] load build context #5 DONE 0.0s #6 [stage-1 1/4] FROM nexus.gz1.opensdn.io:5101/opensdn-controller-config-base:r25.1-2_4_1_0-1 #6 DONE 0.0s #7 [build 1/1] FROM docker.io/library/tf-dev-sandbox:compile #7 CACHED #6 [stage-1 1/4] FROM nexus.gz1.opensdn.io:5101/opensdn-controller-config-base:r25.1-2_4_1_0-1 #6 CACHED #5 [internal] load build context #5 transferring context: 1.97kB done #5 DONE 1.4s #8 [stage-1 2/4] COPY --from=build /pip/fabric_ansible_playbooks-0.1.dev0.tar.gz /opt/ #8 DONE 1.3s #9 [stage-1 3/4] RUN set -e ; yum 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 ; yum 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.514 added from: http://tf-mirrors.gz1.opensdn.io/re 26 MB/s | 2.1 MB 00:00 #9 2.075 added from: http://tf-mirrors.gz1.opensdn.io/re 11 MB/s | 730 kB 00:00 #9 2.411 added from: http://tf-mirrors.gz1.opensdn.io/re 6.2 MB/s | 264 kB 00:00 #9 2.638 added from: http://tf-mirrors.gz1.opensdn.io/re 53 MB/s | 7.0 MB 00:00 #9 4.632 added from: http://tf-mirrors.gz1.opensdn.io/re 36 MB/s | 4.0 MB 00:00 #9 5.901 added from: http://tf-mirrors.gz1.opensdn.io/re 18 MB/s | 939 kB 00:00 #9 6.237 added from: http://tf-mirrors.gz1.opensdn.io/re 27 MB/s | 2.3 MB 00:00 #9 7.030 added from: http://tf-mirrors.gz1.opensdn.io/re 6.4 MB/s | 392 kB 00:00 #9 7.295 added from: http://tf-mirrors.gz1.opensdn.io/re 10 MB/s | 451 kB 00:00 #9 7.613 added from: http://tf-mirrors.gz1.opensdn.io/re 382 kB/s | 16 kB 00:00 #9 7.781 added from: http://tf-mirrors.gz1.opensdn.io/re 4.8 kB/s | 257 B 00:00 #9 7.985 added from: http://tf-mirrors.gz1.opensdn.io/re 295 kB/s | 13 kB 00:00 #9 8.215 added from: http://tf-mirrors.gz1.opensdn.io/re 1.7 MB/s | 64 kB 00:00 #9 9.003 added from: http://tf-mirrors.gz1.opensdn.io/re 52 MB/s | 30 MB 00:00 #9 23.29 Third parties for OpenSDN 23 MB/s | 5.1 MB 00:00 #9 30.35 Dependencies resolved. #9 30.35 ================================================================================ #9 30.35 Package Arch Version Repository Size #9 30.35 ================================================================================ #9 30.35 Installing: #9 30.35 iputils x86_64 20210202-10.el9_5 tf-mirrors.ci_repos_yum9-baseos 168 k #9 30.35 libffi-devel x86_64 3.4.2-8.el9 tf-mirrors.ci_repos_yum9-appstream 28 k #9 30.35 #9 30.35 Transaction Summary #9 30.35 ================================================================================ #9 30.35 Install 2 Packages #9 30.35 #9 30.35 Total download size: 196 k #9 30.35 Installed size: 519 k #9 30.35 Downloading Packages: #9 30.38 (1/2): libffi-devel-3.4.2-8.el9.x86_64.rpm 1.1 MB/s | 28 kB 00:00 #9 30.39 (2/2): iputils-20210202-10.el9_5.x86_64.rpm 4.4 MB/s | 168 kB 00:00 #9 30.39 -------------------------------------------------------------------------------- #9 30.39 Total 4.9 MB/s | 196 kB 00:00 #9 30.39 Running transaction check #9 30.44 Transaction check succeeded. #9 30.44 Running transaction test #9 30.49 Transaction test succeeded. #9 30.50 Running transaction #9 30.54 Preparing : 1/1 #9 30.69 Installing : libffi-devel-3.4.2-8.el9.x86_64 1/2 #9 30.88 Installing : iputils-20210202-10.el9_5.x86_64 2/2 #9 31.04 Running scriptlet: iputils-20210202-10.el9_5.x86_64 2/2 #9 31.45 Verifying : iputils-20210202-10.el9_5.x86_64 1/2 #9 31.45 Verifying : libffi-devel-3.4.2-8.el9.x86_64 2/2 #9 31.49 #9 31.49 Installed: #9 31.49 iputils-20210202-10.el9_5.x86_64 libffi-devel-3.4.2-8.el9.x86_64 #9 31.49 #9 31.49 Complete! #9 32.24 Looking in indexes: http://tf-mirrors.gz1.opensdn.io/root/pypi/+simple/ #9 34.45 Collecting cryptography<3.5 #9 34.49 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 34.80 Collecting importlib-resources<5.1 #9 34.83 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/223/8159eb743bd85/importlib_resources-5.0.7-py3-none-any.whl (24 kB) #9 36.07 Collecting cffi>=1.12 #9 36.08 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 36.13 Collecting pycparser #9 36.16 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e5c/6e8d3fbad5347/pycparser-2.23-py3-none-any.whl (118 kB) #9 36.66 Installing collected packages: pycparser, cffi, importlib-resources, cryptography #9 37.60 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 37.60 Successfully installed cffi-2.0.0 cryptography-3.4.8 importlib-resources-5.0.7 pycparser-2.23 #9 38.89 Looking in indexes: http://tf-mirrors.gz1.opensdn.io/root/pypi/+simple/ #9 39.31 Collecting ansible #9 39.50 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/3a5/ca5152e4547d5/ansible-8.7.0.tar.gz (49.3 MB) #9 122.3 Installing build dependencies: started #9 135.6 Installing build dependencies: finished with status 'done' #9 135.6 Getting requirements to build wheel: started #9 205.3 Getting requirements to build wheel: still running... #9 232.4 Getting requirements to build wheel: finished with status 'done' #9 232.4 Preparing metadata (pyproject.toml): started #9 305.7 Preparing metadata (pyproject.toml): still running... #9 305.8 Preparing metadata (pyproject.toml): finished with status 'done' #9 306.0 Collecting ansible-core #9 306.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f54/2e702ee31fb04/ansible_core-2.15.13.tar.gz (3.1 MB) #9 308.7 Installing build dependencies: started #9 315.1 Installing build dependencies: finished with status 'done' #9 315.1 Getting requirements to build wheel: started #9 315.9 Getting requirements to build wheel: finished with status 'done' #9 315.9 Preparing metadata (pyproject.toml): started #9 316.5 Preparing metadata (pyproject.toml): finished with status 'done' #9 316.5 Requirement already satisfied: packaging in /usr/local/lib/python3.9/site-packages (from ansible-core) (25.0) #9 316.7 Collecting PyYAML>=5.1 #9 316.7 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/d76/623373421df22/pyyaml-6.0.3.tar.gz (130 kB) #9 317.2 Installing build dependencies: started #9 403.0 Installing build dependencies: still running... #9 463.7 Installing build dependencies: still running... #9 492.4 Installing build dependencies: finished with status 'done' #9 492.4 Getting requirements to build wheel: started #9 493.9 Getting requirements to build wheel: finished with status 'done' #9 493.9 Preparing metadata (pyproject.toml): started #9 494.2 Preparing metadata (pyproject.toml): finished with status 'done' #9 494.2 Requirement already satisfied: cryptography in /usr/local/lib64/python3.9/site-packages (from ansible-core) (3.4.8) #9 494.3 Collecting resolvelib<1.1.0,>=0.5.3 #9 494.3 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/04c/e76cbd63fded2/resolvelib-1.0.1.tar.gz (21 kB) #9 494.5 Installing build dependencies: started #9 503.4 Installing build dependencies: finished with status 'done' #9 503.4 Getting requirements to build wheel: started #9 503.7 Getting requirements to build wheel: finished with status 'done' #9 503.7 Preparing metadata (pyproject.toml): started #9 503.9 Preparing metadata (pyproject.toml): finished with status 'done' #9 503.9 Requirement already satisfied: importlib-resources<5.1,>=5.0 in /usr/local/lib/python3.9/site-packages (from ansible-core) (5.0.7) #9 504.0 Collecting jinja2>=3.0.0 #9 504.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/013/7fb05990d35f1/jinja2-3.1.6.tar.gz (245 kB) #9 504.2 Installing build dependencies: started #9 506.6 Installing build dependencies: finished with status 'done' #9 506.6 Getting requirements to build wheel: started #9 506.7 Getting requirements to build wheel: finished with status 'done' #9 506.7 Preparing metadata (pyproject.toml): started #9 506.8 Preparing metadata (pyproject.toml): finished with status 'done' #9 507.1 Collecting MarkupSafe>=2.0 #9 507.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/722/695808f4b6457/markupsafe-3.0.3.tar.gz (80 kB) #9 507.3 Installing build dependencies: started #9 513.2 Installing build dependencies: finished with status 'done' #9 513.2 Getting requirements to build wheel: started #9 513.4 Getting requirements to build wheel: finished with status 'done' #9 513.4 Preparing metadata (pyproject.toml): started #9 513.7 Preparing metadata (pyproject.toml): finished with status 'done' #9 513.8 Requirement already satisfied: cffi>=1.12 in /usr/local/lib64/python3.9/site-packages (from cryptography->ansible-core) (2.0.0) #9 513.8 Requirement already satisfied: pycparser in /usr/local/lib/python3.9/site-packages (from cffi>=1.12->cryptography->ansible-core) (2.23) #9 513.8 Building wheels for collected packages: ansible, ansible-core, jinja2, PyYAML, resolvelib, MarkupSafe #9 513.8 Building wheel for ansible (pyproject.toml): started #9 580.2 Building wheel for ansible (pyproject.toml): still running... #9 618.1 Building wheel for ansible (pyproject.toml): finished with status 'done' #9 618.3 Created wheel for ansible: filename=ansible-8.7.0-py3-none-any.whl size=48371394 sha256=15ef55bdddc6d80abcc866537411f8211b434c1f9c2c33c703c2e66f2b8075f2 #9 618.3 Stored in directory: /root/.cache/pip/wheels/45/76/58/9502290a467417ab1444d84c63019adb1daaed6d18d308b817 #9 618.5 Building wheel for ansible-core (pyproject.toml): started #9 620.4 Building wheel for ansible-core (pyproject.toml): finished with status 'done' #9 620.4 Created wheel for ansible-core: filename=ansible_core-2.15.13-py3-none-any.whl size=2251441 sha256=36b383d0ca2bf297f7c3e64697a97569659c23a6be76fd8390651a85bde12a65 #9 620.4 Stored in directory: /root/.cache/pip/wheels/de/f1/0f/5bdba5e828d49ff45930d6032cef3961e2e673467b0d7bbb1e #9 620.5 Building wheel for jinja2 (pyproject.toml): started #9 620.6 Building wheel for jinja2 (pyproject.toml): finished with status 'done' #9 620.6 Created wheel for jinja2: filename=jinja2-3.1.6-py3-none-any.whl size=134897 sha256=005a2fc379b662ac007c271a8122f7a7db49bb67fbedfc85db50fccde34d839f #9 620.6 Stored in directory: /root/.cache/pip/wheels/7b/c3/fc/fe2ea80be37d89f3c720e53076aac0407f529f0c29356a6215 #9 620.6 Building wheel for PyYAML (pyproject.toml): started #9 621.1 Building wheel for PyYAML (pyproject.toml): finished with status 'done' #9 621.1 Created wheel for PyYAML: filename=pyyaml-6.0.3-cp39-cp39-linux_x86_64.whl size=45461 sha256=aa374f9093cac7391fec58d458eb80269ca356d07dbdecd76f5343104e8edd10 #9 621.1 Stored in directory: /root/.cache/pip/wheels/79/fb/92/ef421e052606484d88d2a8592c227e766d44081f6c09bdecbb #9 621.1 Building wheel for resolvelib (pyproject.toml): started #9 621.4 Building wheel for resolvelib (pyproject.toml): finished with status 'done' #9 621.4 Created wheel for resolvelib: filename=resolvelib-1.0.1-py2.py3-none-any.whl size=17235 sha256=f9094fadd06f8f179b5c1df4eee83ae264151d7958daf80347da18fd938f9670 #9 621.4 Stored in directory: /root/.cache/pip/wheels/9b/e8/75/66577720290e60215abc77f8972bc2f567d4058bd85a58f881 #9 621.4 Building wheel for MarkupSafe (pyproject.toml): started #9 622.0 Building wheel for MarkupSafe (pyproject.toml): finished with status 'done' #9 622.0 Created wheel for MarkupSafe: filename=markupsafe-3.0.3-cp39-cp39-linux_x86_64.whl size=21266 sha256=05dddf35f663e83e5e145d3ee7664bb83d38f67f723a83786b16a52bb19dc4ae #9 622.0 Stored in directory: /root/.cache/pip/wheels/da/bd/2a/6dd1ba50acf54588ceab2b7322c7a9bc5f41b28772c485e8fc #9 622.0 Successfully built ansible ansible-core jinja2 PyYAML resolvelib MarkupSafe #9 622.4 Installing collected packages: MarkupSafe, resolvelib, PyYAML, jinja2, ansible-core, ansible #9 628.4 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 628.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 631.8 75 files removed #9 631.9 2025-11-21 15:38:16 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 633.2 Starting galaxy role install process #9 633.2 - extracting Juniper.junos to /root/.ansible/roles/Juniper.junos #9 633.2 - Juniper.junos was installed successfully #9 633.7 Looking in indexes: http://tf-mirrors.gz1.opensdn.io/root/pypi/+simple/, http://localhost:6667/pip/simple #9 633.7 Collecting device_manager==0.1.dev0 #9 633.7 Downloading http://localhost:6667/pip/simple/device-manager/device_manager-0.1.dev0-py3-none-any.whl (321 kB) #9 633.8 Collecting fabric_ansible==0.1.dev0 #9 633.8 Downloading http://localhost:6667/pip/simple/fabric-ansible/fabric_ansible-0.1.dev0-py3-none-any.whl (41 kB) #9 633.8 Requirement already satisfied: bitarray in /usr/local/lib64/python3.9/site-packages (from device_manager==0.1.dev0) (3.8.0) #9 633.9 Collecting jsonschema #9 633.9 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/3fb/a0169e345c717/jsonschema-4.25.1-py3-none-any.whl (90 kB) #9 633.9 Requirement already satisfied: bottle<0.13 in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (0.12.25) #9 634.0 Collecting junos-eznc #9 634.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/db9/4074c50227c21/junos_eznc-2.7.5-py2.py3-none-any.whl (206 kB) #9 634.4 Collecting psutil #9 634.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/3bb/428f9f05c1225/psutil-7.1.3-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (263 kB) #9 634.4 Collecting inflection #9 634.4 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 634.5 Collecting docker #9 634.6 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/c96/b93b7f0a746f9/docker-7.1.0-py3-none-any.whl (147 kB) #9 634.6 Collecting ncclient #9 634.6 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/318/e8e3e72b1d2a7/ncclient-0.7.0.tar.gz (116 kB) #9 634.7 Preparing metadata (setup.py): started #9 635.0 Preparing metadata (setup.py): finished with status 'done' #9 635.0 Requirement already satisfied: kombu in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (5.6.0) #9 635.0 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 635.0 Collecting netifaces #9 635.0 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 635.1 Requirement already satisfied: timeout-decorator in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (0.5.0) #9 636.2 Collecting lxml #9 636.2 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 636.3 Collecting attrdict #9 636.4 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 636.6 Collecting cityhash #9 636.6 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 636.7 Requirement already satisfied: netaddr<1 in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (0.10.1) #9 636.7 Requirement already satisfied: stevedore in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (5.5.0) #9 636.7 Requirement already satisfied: gevent in /usr/local/lib64/python3.9/site-packages (from device_manager==0.1.dev0) (25.9.1) #9 636.7 Collecting subprocess32 #9 636.7 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/eb2/937c80497978d/subprocess32-3.5.4.tar.gz (97 kB) #9 636.7 Preparing metadata (setup.py): started #9 637.0 Preparing metadata (setup.py): finished with status 'done' #9 637.1 Collecting pysnmp #9 637.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e3f/ed6eab479a4ec/pysnmp-7.1.21-py3-none-any.whl (343 kB) #9 637.2 Collecting pyroute2 #9 637.2 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e7d/485ce8274cbf4/pyroute2-0.9.5-py3-none-any.whl (480 kB) #9 637.2 Requirement already satisfied: jinja2 in /usr/local/lib/python3.9/site-packages (from fabric_ansible==0.1.dev0) (3.1.6) #9 637.3 Collecting jsnapy #9 637.3 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/520/2fd0910cecd32/jsnapy-1.3.8-py2.py3-none-any.whl (50 kB) #9 637.3 Collecting pycrypto #9 637.3 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f2c/e1e989b272cfc/pycrypto-2.6.1.tar.gz (446 kB) #9 637.4 Preparing metadata (setup.py): started #9 637.7 Preparing metadata (setup.py): finished with status 'done' #9 637.7 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 637.7 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 637.7 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 637.7 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 637.7 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 637.7 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 637.7 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 637.7 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 637.7 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 637.7 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 637.7 Requirement already satisfied: six in /usr/lib/python3.9/site-packages (from attrdict->device_manager==0.1.dev0) (1.15.0) #9 637.7 Requirement already satisfied: urllib3>=1.26.0 in /usr/local/lib/python3.9/site-packages (from docker->device_manager==0.1.dev0) (2.5.0) #9 637.8 Requirement already satisfied: zope.interface in /usr/local/lib64/python3.9/site-packages (from gevent->device_manager==0.1.dev0) (8.0.1) #9 637.8 Requirement already satisfied: zope.event in /usr/local/lib/python3.9/site-packages (from gevent->device_manager==0.1.dev0) (6.0) #9 637.8 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 637.9 Collecting pyparsing #9 637.9 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e38/a4f02064cf41f/pyparsing-3.2.5-py3-none-any.whl (113 kB) #9 638.0 Collecting configparser #9 638.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/fee/5e1f3db4156dc/configparser-7.2.0-py3-none-any.whl (17 kB) #9 638.0 Collecting future #9 638.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/929/292d34f5872e7/future-1.0.0-py3-none-any.whl (491 kB) #9 638.1 Collecting icdiff==1.9.1 #9 638.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/669/72dd03318da55/icdiff-1.9.1.tar.gz (9.1 kB) #9 638.1 Preparing metadata (setup.py): started #9 638.3 Preparing metadata (setup.py): finished with status 'done' #9 638.4 Collecting colorama #9 638.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/4f1/d9991f5acc0ca/colorama-0.4.6-py2.py3-none-any.whl (25 kB) #9 638.5 Collecting jsonschema-specifications>=2023.03.6 #9 638.5 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/988/02fee3a11ee76/jsonschema_specifications-2025.9.1-py3-none-any.whl (18 kB) #9 640.2 Collecting rpds-py>=0.7.1 #9 640.2 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 640.3 Collecting attrs>=22.2.0 #9 640.3 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/adc/f7e2a1fb3b36a/attrs-25.4.0-py3-none-any.whl (67 kB) #9 640.4 Collecting referencing>=0.28.4 #9 640.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e86/99adbbf8b5c7d/referencing-0.36.2-py3-none-any.whl (26 kB) #9 640.5 Collecting yamlordereddictloader #9 640.5 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/dc0/48adb67026786/yamlordereddictloader-0.4.2-py3-none-any.whl (4.2 kB) #9 640.5 Collecting pyserial #9 640.5 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/c44/51db6ba391ca6/pyserial-3.5-py2.py3-none-any.whl (90 kB) #9 640.7 Collecting paramiko>=3.5.0 #9 640.7 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/0e2/0e00ac666503b/paramiko-4.0.0-py3-none-any.whl (223 kB) #9 640.7 Collecting scp>=0.7.0 #9 640.7 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 640.8 Collecting transitions #9 640.8 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/024/63248f2b668d8/transitions-0.9.3-py2.py3-none-any.whl (112 kB) #9 640.8 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 640.9 Requirement already satisfied: tzdata>=2025.2 in /usr/local/lib/python3.9/site-packages (from kombu->device_manager==0.1.dev0) (2025.2) #9 640.9 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 640.9 Requirement already satisfied: packaging in /usr/local/lib/python3.9/site-packages (from kombu->device_manager==0.1.dev0) (25.0) #9 640.9 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 641.1 Collecting pyasn1!=0.5.0,>=0.4.8 #9 641.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/0d6/32f46f2ba0914/pyasn1-0.6.1-py3-none-any.whl (83 kB) #9 641.2 Collecting invoke>=2.0 #9 641.2 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/241/3bc441b376e5c/invoke-2.2.1-py3-none-any.whl (160 kB) #9 641.4 Collecting bcrypt>=3.2 #9 641.4 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 641.6 Collecting pynacl>=1.5 #9 641.6 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/a2b/b472458c7ca95/pynacl-1.6.1-cp38-abi3-manylinux_2_34_x86_64.whl (1.4 MB) #9 641.6 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 641.7 Collecting typing-extensions>=4.4.0 #9 641.7 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f0f/a19c6845758ab/typing_extensions-4.15.0-py3-none-any.whl (44 kB) #9 641.7 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 641.7 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) (2025.11.12) #9 641.7 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 641.8 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 641.9 Requirement already satisfied: setuptools>=75.8.2 in /usr/local/lib/python3.9/site-packages (from zope.event->gevent->device_manager==0.1.dev0) (80.9.0) #9 641.9 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 641.9 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 642.0 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 642.0 Using legacy 'setup.py install' for icdiff, since package 'wheel' is not installed. #9 642.0 Using legacy 'setup.py install' for ncclient, since package 'wheel' is not installed. #9 642.0 Using legacy 'setup.py install' for pycrypto, since package 'wheel' is not installed. #9 642.0 Using legacy 'setup.py install' for subprocess32, since package 'wheel' is not installed. #9 642.3 Installing collected packages: pynacl, invoke, bcrypt, typing-extensions, rpds-py, paramiko, lxml, attrs, yamlordereddictloader, 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 642.7 Running setup.py install for ncclient: started #9 643.1 Running setup.py install for ncclient: finished with status 'done' #9 643.2 Running setup.py install for icdiff: started #9 643.5 Running setup.py install for icdiff: finished with status 'done' #9 643.6 Running setup.py install for subprocess32: started #9 643.9 Running setup.py install for subprocess32: finished with status 'done' #9 644.0 Running setup.py install for pycrypto: started #9 653.4 Running setup.py install for pycrypto: finished with status 'done' #9 653.7 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.5 lxml-6.0.2 ncclient-0.7.0 netifaces-0.11.0 paramiko-4.0.0 psutil-7.1.3 pyasn1-0.6.1 pycrypto-2.6.1 pynacl-1.6.1 pyparsing-3.2.5 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 yamlordereddictloader-0.4.2 #9 653.7 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 654.0 DBG: /opt/ last tar.gz = fabric_ansible_playbooks-0.1.dev0.tar.gz #9 DONE 657.8s #10 [stage-1 4/4] COPY *.sh / #10 DONE 0.1s #11 exporting to image #11 exporting layers #11 exporting layers 4.9s done #11 writing image sha256:cced85f7069efef07090a077f45672251cf67fc951bb0cc91175ddbd5efa12a3 done #11 naming to nexus.gz1.opensdn.io:5101/opensdn-controller-config-devicemgr:r25.1-2_4_1_0-1 done #11 DONE 4.9s 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) 2025-11-21 15:38:47,911: INFO: Docker build duration: 667 seconds The push refers to repository [nexus.gz1.opensdn.io:5101/opensdn-controller-config-devicemgr] 26e9634338b3: Preparing 5c129fd2d713: Preparing ef93532498c8: Preparing fd3756e0bef8: Preparing 85f10fe7064e: Preparing 3577ec536d96: Preparing 06b020b74421: Preparing 6143a65c6fb0: Preparing f2f97d84132c: Preparing b952dc5c49bd: Preparing 41711f8a7f4f: Preparing ea798c83744e: Preparing 20c283e857ee: Preparing fefe764f48a8: Preparing 04d51c9979b6: Preparing 44343de3ea1d: Preparing 3577ec536d96: Waiting 06b020b74421: Waiting 6143a65c6fb0: Waiting f2f97d84132c: Waiting 41711f8a7f4f: Waiting ea798c83744e: Waiting 20c283e857ee: Waiting b952dc5c49bd: Waiting fefe764f48a8: Waiting 04d51c9979b6: Waiting 44343de3ea1d: Waiting 85f10fe7064e: Layer already exists fd3756e0bef8: Layer already exists 3577ec536d96: Layer already exists 06b020b74421: Layer already exists 6143a65c6fb0: Layer already exists f2f97d84132c: Layer already exists 26e9634338b3: Pushed ef93532498c8: Pushed b952dc5c49bd: Layer already exists 41711f8a7f4f: Layer already exists ea798c83744e: Layer already exists fefe764f48a8: Layer already exists 20c283e857ee: Layer already exists 04d51c9979b6: Layer already exists 44343de3ea1d: Layer already exists 5c129fd2d713: Pushed r25.1-2_4_1_0-1: digest: sha256:a2731b7aaf9c6bf10044e5688c25323161a4afedea8751f0a966d791d87dff23 size: 3670 2025-11-21 15:39:02,622: INFO: Building opensdn-controller-config-devicemgr finished successfully, duration: 682 seconds REPOSITORY TAG IMAGE ID CREATED SIZE nexus.gz1.opensdn.io:5101/opensdn-controller-config-devicemgr r25.1-2_4_1_0-1 cced85f7069e 20 seconds ago 971MB nexus.gz1.opensdn.io:5101/opensdn-vrouter-kernel-build-init r25.1-2_4_1_0-1 d403197b5918 8 minutes ago 624MB nexus.gz1.opensdn.io:5101/opensdn-tor-agent r25.1-2_4_1_0-1 7ca71655876d 8 minutes ago 674MB nexus.gz1.opensdn.io:5101/opensdn-vrouter-agent r25.1-2_4_1_0-1 49ae8335d9de 8 minutes ago 1.8GB nexus.gz1.opensdn.io:5101/opensdn-vrouter-agent-dpdk r25.1-2_4_1_0-1 a149eb8e5f0b 8 minutes ago 890MB nexus.gz1.opensdn.io:5101/opensdn-controller-control-dns r25.1-2_4_1_0-1 5bf4351a7980 8 minutes ago 997MB nexus.gz1.opensdn.io:5101/opensdn-controller-config-api r25.1-2_4_1_0-1 3c355d5548d7 8 minutes ago 651MB nexus.gz1.opensdn.io:5101/opensdn-nodemgr r25.1-2_4_1_0-1 78a5c37a7101 8 minutes ago 775MB nexus.gz1.opensdn.io:5101/opensdn-status r25.1-2_4_1_0-1 6e481c51f750 8 minutes ago 775MB nexus.gz1.opensdn.io:5101/opensdn-tools r25.1-2_4_1_0-1 126c33d2e820 8 minutes ago 1.48GB nexus.gz1.opensdn.io:5101/opensdn-debug r25.1-2_4_1_0-1 b9752e32d5ce 9 minutes ago 348MB nexus.gz1.opensdn.io:5101/opensdn-controller-config-svcmonitor r25.1-2_4_1_0-1 328a4702f556 9 minutes ago 635MB nexus.gz1.opensdn.io:5101/opensdn-analytics-collector r25.1-2_4_1_0-1 d7ce33db2f8d 9 minutes ago 960MB nexus.gz1.opensdn.io:5101/opensdn-analytics-query-engine r25.1-2_4_1_0-1 f346aa11f5e7 9 minutes ago 841MB nexus.gz1.opensdn.io:5101/opensdn-controller-control-named r25.1-2_4_1_0-1 534a4c735b2e 9 minutes ago 693MB nexus.gz1.opensdn.io:5101/opensdn-analytics-api r25.1-2_4_1_0-1 f404e3f98a88 9 minutes ago 638MB nexus.gz1.opensdn.io:5101/opensdn-controller-config-dnsmasq r25.1-2_4_1_0-1 40327ef3c56c 9 minutes ago 630MB nexus.gz1.opensdn.io:5101/opensdn-controller-control-control r25.1-2_4_1_0-1 c8fa9d611a37 10 minutes ago 1.23GB nexus.gz1.opensdn.io:5101/opensdn-kubernetes-cni-init r25.1-2_4_1_0-1 3cda228f3049 10 minutes ago 633MB nexus.gz1.opensdn.io:5101/opensdn-analytics-alarm-gen r25.1-2_4_1_0-1 0986c6dc401c 10 minutes ago 629MB nexus.gz1.opensdn.io:5101/opensdn-controller-webui-web r25.1-2_4_1_0-1 51b7feb03786 11 minutes ago 858MB nexus.gz1.opensdn.io:5101/opensdn-analytics-snmp-topology r25.1-2_4_1_0-1 82aef803f2c1 11 minutes ago 831MB nexus.gz1.opensdn.io:5101/opensdn-vrouter-kernel-init-dpdk r25.1-2_4_1_0-1 5b00d01dfea6 11 minutes ago 682MB nexus.gz1.opensdn.io:5101/opensdn-controller-webui-job r25.1-2_4_1_0-1 2de97f22083e 11 minutes ago 858MB nexus.gz1.opensdn.io:5101/opensdn-controller-config-schema r25.1-2_4_1_0-1 6b37222d017e 11 minutes ago 614MB nexus.gz1.opensdn.io:5101/opensdn-openstack-neutron-init r25.1-2_4_1_0-1 c810b4f1d4a6 11 minutes ago 363MB nexus.gz1.opensdn.io:5101/opensdn-analytics-snmp-collector r25.1-2_4_1_0-1 9e6bf3658dcb 11 minutes ago 831MB nexus.gz1.opensdn.io:5101/opensdn-openstack-compute-init r25.1-2_4_1_0-1 58189f5c2bc7 11 minutes ago 348MB nexus.gz1.opensdn.io:5101/opensdn-kubernetes-kube-manager r25.1-2_4_1_0-1 f45173cf67ee 11 minutes ago 616MB nexus.gz1.opensdn.io:5101/opensdn-provisioner r25.1-2_4_1_0-1 b37233922407 11 minutes ago 613MB nexus.gz1.opensdn.io:5101/opensdn-node-init r25.1-2_4_1_0-1 08f6e080f902 11 minutes ago 613MB nexus.gz1.opensdn.io:5101/opensdn-openstack-heat-init r25.1-2_4_1_0-1 aa41f4e8edb8 11 minutes ago 363MB nexus.gz1.opensdn.io:5101/opensdn-deployment-test r25.1-2_4_1_0-1 16f11e4ded8b 11 minutes ago 430MB nexus.gz1.opensdn.io:5101/opensdn-external-kafka r25.1-2_4_1_0-1 6e6e742450bf 11 minutes ago 392MB nexus.gz1.opensdn.io:5101/opensdn-external-zookeeper r25.1-2_4_1_0-1 a1dc1da724a6 12 minutes ago 301MB nexus.gz1.opensdn.io:5101/opensdn-external-haproxy r25.1-2_4_1_0-1 49ad2b24978f 12 minutes ago 144MB nexus.gz1.opensdn.io:5101/opensdn-external-redis r25.1-2_4_1_0-1 e7cccd1fef7a 12 minutes ago 171MB opensdn-test-test r25.1-2_4_1_0-1 b08a97caa190 13 minutes ago 1.74GB nexus.gz1.opensdn.io:5101/opensdn-test-test r25.1-2_4_1_0-1 b08a97caa190 13 minutes ago 1.74GB nexus.gz1.opensdn.io:5101/opensdn-controller-webui-base r25.1-2_4_1_0-1 e588fefd3765 14 minutes ago 858MB nexus.gz1.opensdn.io:5101/opensdn-external-stunnel r25.1-2_4_1_0-1 bcd736361094 14 minutes ago 398MB nexus.gz1.opensdn.io:5101/opensdn-external-cassandra r25.1-2_4_1_0-1 f38caa135b9d 14 minutes ago 331MB nexus.gz1.opensdn.io:5101/opensdn-external-rabbitmq r25.1-2_4_1_0-1 64cdcd9f68ae 14 minutes ago 363MB nexus.gz1.opensdn.io:5101/opensdn-analytics-snmp-base r25.1-2_4_1_0-1 8c176a51aafd 15 minutes ago 830MB nexus.gz1.opensdn.io:5101/opensdn-vrouter-base r25.1-2_4_1_0-1 bc34a7fc305e 15 minutes ago 682MB nexus.gz1.opensdn.io:5101/opensdn-external-rsyslogd r25.1-2_4_1_0-1 3331368f334d 15 minutes ago 359MB nexus.gz1.opensdn.io:5101/opensdn-controller-control-base r25.1-2_4_1_0-1 d4fdb41071ef 15 minutes ago 674MB nexus.gz1.opensdn.io:5101/opensdn-base r25.1-2_4_1_0-1 074ea836a42e 16 minutes ago 613MB nexus.gz1.opensdn.io:5101/opensdn-controller-config-base r25.1-2_4_1_0-1 331a61802a2d 16 minutes ago 613MB nexus.gz1.opensdn.io:5101/opensdn-analytics-base r25.1-2_4_1_0-1 c57daea1d2bf 16 minutes ago 613MB nexus.gz1.opensdn.io:5101/opensdn-general-base r25.1-2_4_1_0-1 c312050da079 17 minutes ago 348MB nexus.gz1.opensdn.io:5101/tf-container-builder r25.1-2_4_1_0-1 9111037263bd 18 minutes ago 2.36MB tf-dev-sandbox compile 63636a8a1b45 18 minutes ago 24.6GB nexus.gz1.opensdn.io:5101/tf-charms r25.1-2_4_1_0-1 23b2c948fb34 2 hours ago 6.04MB nexus.gz1.opensdn.io:5101/tf-ansible-deployer r25.1-2_4_1_0-1 c48dd392ffe7 2 hours ago 1.4MB nexus.gz1.opensdn.io:5101/tf-container-builder 1f2a44fe8818 2 hours ago 2.35MB nexus.gz1.opensdn.io:5101/tf-kolla-ansible r25.1-2_4_1_0-1 fa5db829c6d2 2 hours ago 32.7MB nexus.gz1.opensdn.io:5101/tf-build-manifest r25.1-2_4_1_0-1 cd872becc55d 2 hours ago 4.17kB nexus.gz1.opensdn.io:5101/tf-dev-sandbox stable 67f99d13befe 3 hours ago 2.82GB