2026-04-14 15:33:15,103: INFO: Building opensdn-controller-config-devicemgr 2026-04-14 15:33:15,192: 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_7_7_5-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 --build-arg DEBUGINFO_ROOT=/debuginfo #0 building with "default" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: 2.19kB done #1 DONE 0.2s #2 [internal] load metadata for nexus.gz1.opensdn.io:5101/opensdn-controller-config-base:master-2_7_7_5-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 1.4s #5 [build 1/1] FROM docker.io/library/tf-dev-sandbox:compile #5 CACHED #6 [stage-1 1/4] FROM nexus.gz1.opensdn.io:5101/opensdn-controller-config-base:master-2_7_7_5-6 #6 DONE 0.0s #7 [internal] load build context #7 DONE 0.0s #8 [stage-1 1/6] FROM nexus.gz1.opensdn.io:5101/opensdn-analytics-base:master-2_7_7_5-6 #8 CACHED #8 [stage-1 1/6] FROM nexus.gz1.opensdn.io:5101/opensdn-analytics-base:master-2_7_7_5-6 #8 CACHED #9 [stage-1 2/4] COPY --from=build /pip/fabric_ansible_playbooks-0.1.dev0.tar.gz /opt/ #9 ... #7 [internal] load build context #7 transferring context: 1.97kB done #7 DONE 1.8s #9 [stage-1 2/4] COPY --from=build /pip/fabric_ansible_playbooks-0.1.dev0.tar.gz /opt/ #9 DONE 2.4s #10 [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 #10 2.136 added from: http://tf-mirrors.gz1.opensdn.io/re 67 MB/s | 14 MB 00:00 #10 5.811 added from: http://tf-mirrors.gz1.opensdn.io/re 31 MB/s | 1.9 MB 00:00 #10 6.381 added from: http://tf-mirrors.gz1.opensdn.io/re 10 MB/s | 402 kB 00:00 #10 7.063 added from: http://tf-mirrors.gz1.opensdn.io/re 53 MB/s | 16 MB 00:00 #10 11.81 added from: http://tf-mirrors.gz1.opensdn.io/re 36 MB/s | 11 MB 00:00 #10 16.56 added from: http://tf-mirrors.gz1.opensdn.io/re 12 MB/s | 1.1 MB 00:00 #10 17.03 added from: http://tf-mirrors.gz1.opensdn.io/re 31 MB/s | 4.8 MB 00:00 #10 20.02 added from: http://tf-mirrors.gz1.opensdn.io/re 13 MB/s | 697 kB 00:00 #10 20.71 added from: http://tf-mirrors.gz1.opensdn.io/re 7.6 MB/s | 474 kB 00:00 #10 21.34 added from: http://tf-mirrors.gz1.opensdn.io/re 624 kB/s | 18 kB 00:00 #10 21.87 added from: http://tf-mirrors.gz1.opensdn.io/re 6.9 kB/s | 257 B 00:00 #10 22.48 added from: http://tf-mirrors.gz1.opensdn.io/re 378 kB/s | 15 kB 00:00 #10 23.13 added from: http://tf-mirrors.gz1.opensdn.io/re 336 kB/s | 96 kB 00:00 #10 24.32 added from: http://tf-mirrors.gz1.opensdn.io/re 64 MB/s | 39 MB 00:00 #10 41.95 Third parties for OpenSDN 35 MB/s | 5.1 MB 00:00 #10 56.15 Dependencies resolved. #10 56.15 ================================================================================ #10 56.15 Package Arch Version Repository Size #10 56.15 ================================================================================ #10 56.15 Installing: #10 56.15 iputils x86_64 20210202-15.el9 tf-mirrors.ci_repos_yum9-baseos 167 k #10 56.15 libffi-devel x86_64 3.4.2-8.el9 tf-mirrors.ci_repos_yum9-appstream 28 k #10 56.15 #10 56.15 Transaction Summary #10 56.15 ================================================================================ #10 56.15 Install 2 Packages #10 56.15 #10 56.15 Total download size: 196 k #10 56.15 Installed size: 531 k #10 56.15 Downloading Packages: #10 56.17 (1/2): libffi-devel-3.4.2-8.el9.x86_64.rpm 1.2 MB/s | 28 kB 00:00 #10 56.18 (2/2): iputils-20210202-15.el9.x86_64.rpm 4.8 MB/s | 167 kB 00:00 #10 56.19 -------------------------------------------------------------------------------- #10 56.19 Total 5.3 MB/s | 196 kB 00:00 #10 56.19 Running transaction check #10 56.25 Transaction check succeeded. #10 56.25 Running transaction test #10 56.33 Transaction test succeeded. #10 56.33 Running transaction #10 56.37 Preparing : 1/1 #10 56.50 Installing : libffi-devel-3.4.2-8.el9.x86_64 1/2 #10 56.52 Installing : iputils-20210202-15.el9.x86_64 2/2 #10 56.52 Running scriptlet: iputils-20210202-15.el9.x86_64 2/2 #10 56.78 Verifying : iputils-20210202-15.el9.x86_64 1/2 #10 56.78 Verifying : libffi-devel-3.4.2-8.el9.x86_64 2/2 #10 56.85 #10 56.85 Installed: #10 56.85 iputils-20210202-15.el9.x86_64 libffi-devel-3.4.2-8.el9.x86_64 #10 56.85 #10 56.85 Complete! #10 57.97 Looking in indexes: http://tf-mirrors.gz1.opensdn.io/root/pypi/+simple/ #10 61.11 Collecting cryptography<3.5 #10 61.14 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) #10 61.51 Collecting importlib-resources<5.1 #10 61.52 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/223/8159eb743bd85/importlib_resources-5.0.7-py3-none-any.whl (24 kB) #10 63.32 Collecting cffi>=1.12 #10 63.32 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) #10 63.46 Collecting pycparser #10 63.48 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e5c/6e8d3fbad5347/pycparser-2.23-py3-none-any.whl (118 kB) #10 63.99 Installing collected packages: pycparser, cffi, importlib-resources, cryptography #10 65.96 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 #10 65.96 Successfully installed cffi-2.0.0 cryptography-3.4.8 importlib-resources-5.0.7 pycparser-2.23 #10 68.63 Looking in indexes: http://tf-mirrors.gz1.opensdn.io/root/pypi/+simple/ #10 69.67 Collecting ansible #10 69.90 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/3a5/ca5152e4547d5/ansible-8.7.0.tar.gz (49.3 MB) #10 140.7 Installing build dependencies: started #10 149.4 Installing build dependencies: finished with status 'done' #10 149.4 Getting requirements to build wheel: started #10 219.6 Getting requirements to build wheel: still running... #10 219.7 Getting requirements to build wheel: finished with status 'done' #10 219.7 Preparing metadata (pyproject.toml): started #10 283.3 Preparing metadata (pyproject.toml): still running... #10 283.4 Preparing metadata (pyproject.toml): finished with status 'done' #10 283.6 Collecting ansible-core #10 283.6 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f54/2e702ee31fb04/ansible_core-2.15.13.tar.gz (3.1 MB) #10 285.9 Installing build dependencies: started #10 291.6 Installing build dependencies: finished with status 'done' #10 291.6 Getting requirements to build wheel: started #10 292.2 Getting requirements to build wheel: finished with status 'done' #10 292.2 Preparing metadata (pyproject.toml): started #10 292.7 Preparing metadata (pyproject.toml): finished with status 'done' #10 292.8 Requirement already satisfied: packaging in /usr/local/lib/python3.9/site-packages (from ansible-core) (26.0) #10 292.8 Requirement already satisfied: cryptography in /usr/local/lib64/python3.9/site-packages (from ansible-core) (3.4.8) #10 292.9 Collecting PyYAML>=5.1 #10 292.9 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/d76/623373421df22/pyyaml-6.0.3.tar.gz (130 kB) #10 293.3 Installing build dependencies: started #10 369.8 Installing build dependencies: still running... #10 431.2 Installing build dependencies: still running... #10 449.6 Installing build dependencies: finished with status 'done' #10 449.6 Getting requirements to build wheel: started #10 451.0 Getting requirements to build wheel: finished with status 'done' #10 451.0 Preparing metadata (pyproject.toml): started #10 451.3 Preparing metadata (pyproject.toml): finished with status 'done' #10 451.3 Requirement already satisfied: importlib-resources<5.1,>=5.0 in /usr/local/lib/python3.9/site-packages (from ansible-core) (5.0.7) #10 451.4 Collecting jinja2>=3.0.0 #10 451.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/013/7fb05990d35f1/jinja2-3.1.6.tar.gz (245 kB) #10 451.6 Installing build dependencies: started #10 453.7 Installing build dependencies: finished with status 'done' #10 453.7 Getting requirements to build wheel: started #10 453.8 Getting requirements to build wheel: finished with status 'done' #10 453.8 Preparing metadata (pyproject.toml): started #10 453.8 Preparing metadata (pyproject.toml): finished with status 'done' #10 454.2 Collecting resolvelib<1.1.0,>=0.5.3 #10 454.2 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/04c/e76cbd63fded2/resolvelib-1.0.1.tar.gz (21 kB) #10 454.4 Installing build dependencies: started #10 464.4 Installing build dependencies: finished with status 'done' #10 464.4 Getting requirements to build wheel: started #10 464.6 Getting requirements to build wheel: finished with status 'done' #10 464.6 Preparing metadata (pyproject.toml): started #10 464.8 Preparing metadata (pyproject.toml): finished with status 'done' #10 465.0 Collecting MarkupSafe>=2.0 #10 465.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/722/695808f4b6457/markupsafe-3.0.3.tar.gz (80 kB) #10 465.2 Installing build dependencies: started #10 470.1 Installing build dependencies: finished with status 'done' #10 470.1 Getting requirements to build wheel: started #10 470.3 Getting requirements to build wheel: finished with status 'done' #10 470.3 Preparing metadata (pyproject.toml): started #10 470.6 Preparing metadata (pyproject.toml): finished with status 'done' #10 470.6 Requirement already satisfied: cffi>=1.12 in /usr/local/lib64/python3.9/site-packages (from cryptography->ansible-core) (2.0.0) #10 470.6 Requirement already satisfied: pycparser in /usr/local/lib/python3.9/site-packages (from cffi>=1.12->cryptography->ansible-core) (2.23) #10 470.6 Building wheels for collected packages: ansible, ansible-core, jinja2, PyYAML, resolvelib, MarkupSafe #10 470.6 Building wheel for ansible (pyproject.toml): started #10 550.7 Building wheel for ansible (pyproject.toml): still running... #10 561.6 Building wheel for ansible (pyproject.toml): finished with status 'done' #10 561.8 Created wheel for ansible: filename=ansible-8.7.0-py3-none-any.whl size=48371394 sha256=d487564980005621fcbdd44a8a55535b961a2749974048d1595a1a783c906bd8 #10 561.8 Stored in directory: /root/.cache/pip/wheels/45/76/58/9502290a467417ab1444d84c63019adb1daaed6d18d308b817 #10 561.9 Building wheel for ansible-core (pyproject.toml): started #10 563.8 Building wheel for ansible-core (pyproject.toml): finished with status 'done' #10 563.8 Created wheel for ansible-core: filename=ansible_core-2.15.13-py3-none-any.whl size=2251441 sha256=823654717b5a6483fc0dcf3fc7d6374a8d98f07a9b1b4bfa3dbd4abff60e4ecc #10 563.8 Stored in directory: /root/.cache/pip/wheels/de/f1/0f/5bdba5e828d49ff45930d6032cef3961e2e673467b0d7bbb1e #10 563.8 Building wheel for jinja2 (pyproject.toml): started #10 564.0 Building wheel for jinja2 (pyproject.toml): finished with status 'done' #10 564.0 Created wheel for jinja2: filename=jinja2-3.1.6-py3-none-any.whl size=134897 sha256=005a2fc379b662ac007c271a8122f7a7db49bb67fbedfc85db50fccde34d839f #10 564.0 Stored in directory: /root/.cache/pip/wheels/7b/c3/fc/fe2ea80be37d89f3c720e53076aac0407f529f0c29356a6215 #10 564.0 Building wheel for PyYAML (pyproject.toml): started #10 564.5 Building wheel for PyYAML (pyproject.toml): finished with status 'done' #10 564.5 Created wheel for PyYAML: filename=pyyaml-6.0.3-cp39-cp39-linux_x86_64.whl size=45461 sha256=b4dbf0d3e0aaf2029156b7b5118bf2daddc79bf645113585042f6fc177499772 #10 564.5 Stored in directory: /root/.cache/pip/wheels/79/fb/92/ef421e052606484d88d2a8592c227e766d44081f6c09bdecbb #10 564.5 Building wheel for resolvelib (pyproject.toml): started #10 564.8 Building wheel for resolvelib (pyproject.toml): finished with status 'done' #10 564.8 Created wheel for resolvelib: filename=resolvelib-1.0.1-py2.py3-none-any.whl size=17235 sha256=9862e67418f5f790e7a4926caf8911cc477215a8b9f70ec64b478b30a6e7fb56 #10 564.8 Stored in directory: /root/.cache/pip/wheels/9b/e8/75/66577720290e60215abc77f8972bc2f567d4058bd85a58f881 #10 564.8 Building wheel for MarkupSafe (pyproject.toml): started #10 565.3 Building wheel for MarkupSafe (pyproject.toml): finished with status 'done' #10 565.3 Created wheel for MarkupSafe: filename=markupsafe-3.0.3-cp39-cp39-linux_x86_64.whl size=21266 sha256=022ecc1cd3a4b8e7d42ac344c521af2d77402fdc4a6fcaa9005adee22c0ac0d1 #10 565.3 Stored in directory: /root/.cache/pip/wheels/da/bd/2a/6dd1ba50acf54588ceab2b7322c7a9bc5f41b28772c485e8fc #10 565.3 Successfully built ansible ansible-core jinja2 PyYAML resolvelib MarkupSafe #10 565.7 Installing collected packages: MarkupSafe, resolvelib, PyYAML, jinja2, ansible-core, ansible #10 570.7 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 #10 570.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 #10 573.7 77 files removed #10 573.8 2026-04-14 15:42:56 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] #10 574.9 Starting galaxy role install process #10 574.9 - extracting Juniper.junos to /root/.ansible/roles/Juniper.junos #10 574.9 - Juniper.junos was installed successfully #10 575.3 Looking in indexes: http://tf-mirrors.gz1.opensdn.io/root/pypi/+simple/, http://localhost:6667/pip/simple #10 575.3 Collecting device_manager==0.1.dev0 #10 575.3 Downloading http://localhost:6667/pip/simple/device-manager/device_manager-0.1.dev0-py3-none-any.whl (321 kB) #10 575.4 Collecting fabric_ansible==0.1.dev0 #10 575.4 Downloading http://localhost:6667/pip/simple/fabric-ansible/fabric_ansible-0.1.dev0-py3-none-any.whl (41 kB) #10 575.4 Requirement already satisfied: gevent in /usr/local/lib64/python3.9/site-packages (from device_manager==0.1.dev0) (25.9.1) #10 575.6 Collecting cityhash #10 575.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) #10 575.9 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) #10 575.9 Requirement already satisfied: kombu in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (5.6.2) #10 575.9 Collecting netifaces #10 575.9 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) #10 575.9 Requirement already satisfied: stevedore in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (5.5.0) #10 576.0 Collecting ncclient #10 576.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/47b/eeeee6074bd70/ncclient-0.7.1-py3-none-any.whl (94 kB) #10 576.1 Collecting junos-eznc #10 576.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/a4f/9cc290fde95b8/junos_eznc-2.7.6-py2.py3-none-any.whl (207 kB) #10 576.1 Requirement already satisfied: timeout-decorator in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (0.5.0) #10 576.1 Requirement already satisfied: netaddr<1 in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (0.10.1) #10 576.1 Collecting docker #10 576.1 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/c96/b93b7f0a746f9/docker-7.1.0-py3-none-any.whl (147 kB) #10 576.2 Collecting jsonschema #10 576.2 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/3fb/a0169e345c717/jsonschema-4.25.1-py3-none-any.whl (90 kB) #10 576.6 Collecting psutil #10 576.6 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) #10 576.6 Requirement already satisfied: bottle<0.13 in /usr/local/lib/python3.9/site-packages (from device_manager==0.1.dev0) (0.12.25) #10 576.6 Collecting inflection #10 576.7 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f38/b2b640938a4f3/inflection-0.5.1-py2.py3-none-any.whl (9.5 kB) #10 577.7 Collecting lxml #10 577.7 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/ee2/a470a1be95c3d/lxml-6.0.4-cp39-cp39-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (5.3 MB) #10 577.8 Collecting attrdict #10 577.9 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/943/2e3498c74ff7e/attrdict-2.0.1-py2.py3-none-any.whl (9.9 kB) #10 577.9 Requirement already satisfied: bitarray in /usr/local/lib64/python3.9/site-packages (from device_manager==0.1.dev0) (3.8.1) #10 577.9 Requirement already satisfied: xmltodict==0.12.0 in /usr/local/lib/python3.9/site-packages (from fabric_ansible==0.1.dev0) (0.12.0) #10 577.9 Collecting pyroute2 #10 577.9 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e7d/485ce8274cbf4/pyroute2-0.9.5-py3-none-any.whl (480 kB) #10 578.0 Collecting pycrypto #10 578.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f2c/e1e989b272cfc/pycrypto-2.6.1.tar.gz (446 kB) #10 578.1 Preparing metadata (setup.py): started #10 578.3 Preparing metadata (setup.py): finished with status 'done' #10 578.3 Collecting jsnapy #10 578.3 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/520/2fd0910cecd32/jsnapy-1.3.8-py2.py3-none-any.whl (50 kB) #10 578.4 Collecting subprocess32 #10 578.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/eb2/937c80497978d/subprocess32-3.5.4.tar.gz (97 kB) #10 578.4 Preparing metadata (setup.py): started #10 578.6 Preparing metadata (setup.py): finished with status 'done' #10 578.6 Requirement already satisfied: jinja2 in /usr/local/lib/python3.9/site-packages (from fabric_ansible==0.1.dev0) (3.1.6) #10 578.7 Collecting pysnmp #10 578.7 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e3f/ed6eab479a4ec/pysnmp-7.1.21-py3-none-any.whl (343 kB) #10 578.8 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) #10 578.8 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) #10 578.8 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.11.0) #10 578.8 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) #10 578.8 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.5) #10 578.8 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) #10 578.8 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) #10 578.8 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) #10 578.8 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) #10 578.8 Requirement already satisfied: six in /usr/lib/python3.9/site-packages (from attrdict->device_manager==0.1.dev0) (1.15.0) #10 578.8 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) #10 578.8 Requirement already satisfied: zope.event in /usr/local/lib/python3.9/site-packages (from gevent->device_manager==0.1.dev0) (6.0) #10 578.8 Requirement already satisfied: zope.interface in /usr/local/lib64/python3.9/site-packages (from gevent->device_manager==0.1.dev0) (8.0.1) #10 578.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) #10 578.9 Collecting colorama #10 578.9 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/4f1/d9991f5acc0ca/colorama-0.4.6-py2.py3-none-any.whl (25 kB) #10 578.9 Collecting future #10 578.9 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/929/292d34f5872e7/future-1.0.0-py3-none-any.whl (491 kB) #10 579.0 Collecting configparser #10 579.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/fee/5e1f3db4156dc/configparser-7.2.0-py3-none-any.whl (17 kB) #10 579.0 Collecting icdiff==1.9.1 #10 579.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/669/72dd03318da55/icdiff-1.9.1.tar.gz (9.1 kB) #10 579.1 Preparing metadata (setup.py): started #10 579.3 Preparing metadata (setup.py): finished with status 'done' #10 579.4 Collecting pyparsing #10 579.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/850/ba148bd908d7e/pyparsing-3.3.2-py3-none-any.whl (122 kB) #10 579.6 Collecting referencing>=0.28.4 #10 579.6 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/e86/99adbbf8b5c7d/referencing-0.36.2-py3-none-any.whl (26 kB) #10 581.1 Collecting rpds-py>=0.7.1 #10 581.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) #10 581.2 Collecting jsonschema-specifications>=2023.03.6 #10 581.2 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/988/02fee3a11ee76/jsonschema_specifications-2025.9.1-py3-none-any.whl (18 kB) #10 581.2 Collecting attrs>=22.2.0 #10 581.3 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/c64/7aa4a12dfbad9/attrs-26.1.0-py3-none-any.whl (67 kB) #10 581.3 Collecting yamlloader #10 581.3 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/d9e/a9948759732ea/yamlloader-1.6.0-py3-none-any.whl (7.8 kB) #10 581.4 Collecting pyserial #10 581.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/c44/51db6ba391ca6/pyserial-3.5-py2.py3-none-any.whl (90 kB) #10 581.4 Collecting ncclient #10 581.4 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/318/e8e3e72b1d2a7/ncclient-0.7.0.tar.gz (116 kB) #10 581.5 Preparing metadata (setup.py): started #10 581.8 Preparing metadata (setup.py): finished with status 'done' #10 581.8 Collecting transitions #10 581.8 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/024/63248f2b668d8/transitions-0.9.3-py2.py3-none-any.whl (112 kB) #10 581.9 Collecting paramiko>=3.5.0 #10 581.9 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/0e2/0e00ac666503b/paramiko-4.0.0-py3-none-any.whl (223 kB) #10 582.0 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) #10 582.0 Collecting scp>=0.7.0 #10 582.0 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/9e7/f721e5ac563c3/scp-0.15.0-py2.py3-none-any.whl (8.8 kB) #10 582.1 Requirement already satisfied: tzdata>=2025.2 in /usr/local/lib/python3.9/site-packages (from kombu->device_manager==0.1.dev0) (2026.1) #10 582.1 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) #10 582.1 Requirement already satisfied: packaging in /usr/local/lib/python3.9/site-packages (from kombu->device_manager==0.1.dev0) (26.0) #10 582.1 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) #10 582.2 Collecting pyasn1!=0.5.0,>=0.4.8 #10 582.2 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/a80/184d120f0864a/pyasn1-0.6.3-py3-none-any.whl (83 kB) #10 582.3 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) #10 582.5 Collecting bcrypt>=3.2 #10 582.5 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) #10 582.6 Collecting pynacl>=1.5 #10 582.6 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) #10 582.7 Collecting invoke>=2.0 #10 582.7 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f11/327165e5cbb89/invoke-3.0.3-py3-none-any.whl (160 kB) #10 582.8 Collecting typing-extensions>=4.4.0 #10 582.8 Downloading http://tf-mirrors.gz1.opensdn.io/root/pypi/%2Bf/f0f/a19c6845758ab/typing_extensions-4.15.0-py3-none-any.whl (44 kB) #10 582.8 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) #10 582.8 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.2.25) #10 582.8 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.7) #10 582.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) #10 582.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) (82.0.1) #10 583.0 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) #10 583.0 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) #10 583.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) #10 583.1 Using legacy 'setup.py install' for icdiff, since package 'wheel' is not installed. #10 583.1 Using legacy 'setup.py install' for ncclient, since package 'wheel' is not installed. #10 583.1 Using legacy 'setup.py install' for pycrypto, since package 'wheel' is not installed. #10 583.1 Using legacy 'setup.py install' for subprocess32, since package 'wheel' is not installed. #10 583.3 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 #10 583.6 Running setup.py install for ncclient: started #10 583.9 Running setup.py install for ncclient: finished with status 'done' #10 584.0 Running setup.py install for icdiff: started #10 584.3 Running setup.py install for icdiff: finished with status 'done' #10 584.4 Running setup.py install for subprocess32: started #10 584.7 Running setup.py install for subprocess32: finished with status 'done' #10 584.8 Running setup.py install for pycrypto: started #10 592.7 Running setup.py install for pycrypto: finished with status 'done' #10 592.9 Successfully installed attrdict-2.0.1 attrs-26.1.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-3.0.3 jsnapy-1.3.8 jsonschema-4.25.1 jsonschema-specifications-2025.9.1 junos-eznc-2.7.6 lxml-6.0.4 ncclient-0.7.0 netifaces-0.11.0 paramiko-4.0.0 psutil-7.2.2 pyasn1-0.6.3 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 #10 592.9 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 #10 593.3 DBG: /opt/ last tar.gz = fabric_ansible_playbooks-0.1.dev0.tar.gz #10 DONE 597.0s #11 [stage-1 4/4] COPY *.sh / #11 DONE 0.1s #12 exporting to image #12 exporting layers #12 exporting layers 4.3s done #12 writing image sha256:7d067d27796141f52e11ff137f0ed64cfce1ff396c742add0a56c48f82fb2cc7 done #12 naming to nexus.gz1.opensdn.io:5101/opensdn-controller-config-devicemgr:master-2_7_7_5-6 done #12 DONE 4.3s 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-04-14 15:43:23,990: INFO: Docker build duration: 608 seconds The push refers to repository [nexus.gz1.opensdn.io:5101/opensdn-controller-config-devicemgr] ffd11e5f40a5: Preparing 2e9149de0229: Preparing 2dc9f015ed62: Preparing ecd3175741d9: Preparing 69a8d71da712: Preparing 86bb71a1bc3f: Preparing 636cc7d4228b: Preparing 35634a8278f1: Preparing c953f77ab41d: Preparing 635d170c18bd: Preparing 7ade36819aa3: Preparing 108806541e59: Preparing bca44befe386: Preparing 81af4d1e7b29: Preparing e6ba0d649019: Preparing e846fbf0aa46: Preparing 44343de3ea1d: Preparing 86bb71a1bc3f: Waiting 636cc7d4228b: Waiting 35634a8278f1: Waiting c953f77ab41d: Waiting 635d170c18bd: Waiting 7ade36819aa3: Waiting 108806541e59: Waiting bca44befe386: Waiting 81af4d1e7b29: Waiting e6ba0d649019: Waiting e846fbf0aa46: Waiting 44343de3ea1d: Waiting 69a8d71da712: Layer already exists ecd3175741d9: Layer already exists 86bb71a1bc3f: Layer already exists 636cc7d4228b: Layer already exists 35634a8278f1: Layer already exists c953f77ab41d: Layer already exists 635d170c18bd: Layer already exists 2dc9f015ed62: Pushed ffd11e5f40a5: Pushed 7ade36819aa3: Layer already exists bca44befe386: Layer already exists 108806541e59: Layer already exists 81af4d1e7b29: Layer already exists e6ba0d649019: Layer already exists 44343de3ea1d: Layer already exists e846fbf0aa46: Layer already exists 2e9149de0229: Pushed master-2_7_7_5-6: digest: sha256:57084dd7a91610dfaa2e94d9d93ae07c1f0be8e3d11fcfb94faffce8b813ad11 size: 3878 2026-04-14 15:43:36,933: INFO: Building opensdn-controller-config-devicemgr finished successfully, duration: 621 seconds WARNING: This output is designed for human readability. For machine-readable output, please use --format. IMAGE ID DISK USAGE CONTENT SIZE EXTRA nexus.gz1.opensdn.io:5101/opensdn-analytics-alarm-gen:master-2_7_7_5-6 b84e754591d9 683MB 0B nexus.gz1.opensdn.io:5101/opensdn-analytics-api:master-2_7_7_5-6 4cdea1c6d864 692MB 0B nexus.gz1.opensdn.io:5101/opensdn-analytics-base:master-2_7_7_5-6 afeb46ef4d47 667MB 0B nexus.gz1.opensdn.io:5101/opensdn-analytics-collector:master-2_7_7_5-6 9d06652c492a 749MB 0B nexus.gz1.opensdn.io:5101/opensdn-analytics-query-engine:master-2_7_7_5-6 dcb083dae8d6 745MB 0B nexus.gz1.opensdn.io:5101/opensdn-analytics-snmp-base:master-2_7_7_5-6 12b396cacb09 908MB 0B nexus.gz1.opensdn.io:5101/opensdn-analytics-snmp-collector:master-2_7_7_5-6 24648c9f755b 909MB 0B nexus.gz1.opensdn.io:5101/opensdn-analytics-snmp-topology:master-2_7_7_5-6 20b3a82d429d 909MB 0B nexus.gz1.opensdn.io:5101/opensdn-ansible-deployer-src:master-2_7_7_5-6 56912c227a31 1.41MB 0B nexus.gz1.opensdn.io:5101/opensdn-base:master-2_7_7_5-6 38cd2b825c25 667MB 0B nexus.gz1.opensdn.io:5101/opensdn-build-manifest-src:master-2_7_7_5-6 dc106b139b73 4.17kB 0B nexus.gz1.opensdn.io:5101/opensdn-charms-src:master-2_7_7_5-6 d272dff82d54 6.05MB 0B nexus.gz1.opensdn.io:5101/opensdn-container-builder-src:master-2_7_7_5-6 3ee7879c89cb 2.49MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-config-api:master-2_7_7_5-6 77f575d45fd4 705MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-config-base:master-2_7_7_5-6 6d9ee73eb072 667MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-config-devicemgr:master-2_7_7_5-6 7d067d277961 1.02GB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-config-dnsmasq:master-2_7_7_5-6 639b878cafd2 682MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-config-schema:master-2_7_7_5-6 c9f29119c0a7 668MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-config-svcmonitor:master-2_7_7_5-6 184b528c45f1 689MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-control-base:master-2_7_7_5-6 b83a2f30088b 726MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-control-control:master-2_7_7_5-6 46ef51c136aa 753MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-control-dns:master-2_7_7_5-6 b784a2af4ff6 753MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-control-named:master-2_7_7_5-6 edbf31678322 734MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-webui-base:master-2_7_7_5-6 6a2674b5720a 914MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-webui-job:master-2_7_7_5-6 b8b140d8072f 914MB 0B nexus.gz1.opensdn.io:5101/opensdn-controller-webui-web:master-2_7_7_5-6 582d021d45a3 914MB 0B nexus.gz1.opensdn.io:5101/opensdn-debug:master-2_7_7_5-6 9baca53ed2d6 428MB 0B nexus.gz1.opensdn.io:5101/opensdn-deployment-test:master-2_7_7_5-6 25de2bf3cb7b 441MB 0B nexus.gz1.opensdn.io:5101/opensdn-external-cassandra:master-2_7_7_5-6 b036e75e911b 331MB 0B nexus.gz1.opensdn.io:5101/opensdn-external-haproxy:master-2_7_7_5-6 d3b1f2dc87a5 144MB 0B nexus.gz1.opensdn.io:5101/opensdn-external-kafka:master-2_7_7_5-6 4609b1ca3170 392MB 0B nexus.gz1.opensdn.io:5101/opensdn-external-rabbitmq:master-2_7_7_5-6 3e1640f781e0 363MB 0B nexus.gz1.opensdn.io:5101/opensdn-external-redis:master-2_7_7_5-6 32e978c74b4c 171MB 0B nexus.gz1.opensdn.io:5101/opensdn-external-rsyslogd:master-2_7_7_5-6 6bc3b63a1540 440MB 0B nexus.gz1.opensdn.io:5101/opensdn-external-stunnel:master-2_7_7_5-6 b75d57f3dc94 454MB 0B nexus.gz1.opensdn.io:5101/opensdn-external-zookeeper:master-2_7_7_5-6 1a73c944e59c 301MB 0B nexus.gz1.opensdn.io:5101/opensdn-general-base:master-2_7_7_5-6 1ef2df8ff9d3 428MB 0B nexus.gz1.opensdn.io:5101/opensdn-kolla-ansible-src:master-2_7_7_5-6 121dff2e28ca 32.7MB 0B nexus.gz1.opensdn.io:5101/opensdn-kubernetes-cni-init:master-2_7_7_5-6 977b4852d49d 687MB 0B nexus.gz1.opensdn.io:5101/opensdn-kubernetes-kube-manager:master-2_7_7_5-6 47fe32c4f0c9 672MB 0B nexus.gz1.opensdn.io:5101/opensdn-node-init:master-2_7_7_5-6 6f32d9a3906b 667MB 0B nexus.gz1.opensdn.io:5101/opensdn-nodemgr:master-2_7_7_5-6 6bf0db2378f0 802MB 0B nexus.gz1.opensdn.io:5101/opensdn-openstack-compute-init:master-2_7_7_5-6 d73026ff2223 428MB 0B nexus.gz1.opensdn.io:5101/opensdn-openstack-heat-init:master-2_7_7_5-6 bb84a4b11138 444MB 0B nexus.gz1.opensdn.io:5101/opensdn-openstack-neutron-init:master-2_7_7_5-6 b115bb927d76 444MB 0B nexus.gz1.opensdn.io:5101/opensdn-provisioner:master-2_7_7_5-6 99d9f56365c9 667MB 0B nexus.gz1.opensdn.io:5101/opensdn-status:master-2_7_7_5-6 74ca24c8f4a4 802MB 0B nexus.gz1.opensdn.io:5101/opensdn-test-test:master-2_7_7_5-6 3b21cab4703e 1.83GB 0B nexus.gz1.opensdn.io:5101/opensdn-tools:master-2_7_7_5-6 43e816d5afc0 1.27GB 0B nexus.gz1.opensdn.io:5101/opensdn-tor-agent:master-2_7_7_5-6 b3124b1334b7 726MB 0B nexus.gz1.opensdn.io:5101/opensdn-vrouter-agent-dpdk:master-2_7_7_5-6 4e331574cfde 958MB 0B nexus.gz1.opensdn.io:5101/opensdn-vrouter-agent:master-2_7_7_5-6 0d758ebd7705 924MB 0B nexus.gz1.opensdn.io:5101/opensdn-vrouter-base:master-2_7_7_5-6 59b44d573559 734MB 0B nexus.gz1.opensdn.io:5101/opensdn-vrouter-kernel-build-init:master-2_7_7_5-6 e50c9a3696e8 612MB 0B nexus.gz1.opensdn.io:5101/opensdn-vrouter-kernel-init-dpdk:master-2_7_7_5-6 95e08292a6d3 734MB 0B nexus.gz1.opensdn.io:5101/opensdn-vrouter-kernel-init:master-2_7_7_5-6 36a099729083 365MB 0B nexus.gz1.opensdn.io:5101/tf-dev-sandbox:sandbox-master-2_7_7_5-6 1de103f0cfb2 2.9GB 0B U opensdn-test-test:master-2_7_7_5-6 3b21cab4703e 1.83GB 0B rockylinux:9 9cc24f05f309 176MB 0B tf-dev-sandbox:compile 8be13bedfd62 22.2GB 0B tf-dev-sandbox:sandbox-master-2_7_7_5-6 1de103f0cfb2 2.9GB 0B U