Console Output
[IM-stage_2-merge_v10.0] Running shell script
+ runuser jenkins -c devops-stages/stage-test.sh
Launching tox
ERROR: invocation failed (exit code 1), logfile: /tmp/.tox/pylint/log/pylint-0.log
================================== log start ===================================
pylint create: /tmp/.tox/pylint
pylint installdeps: -r/home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt
ERROR: invocation failed (exit code 1), logfile: /tmp/.tox/pylint/log/pylint-2.log
================================== log start ===================================
Collecting bitarray==2.3.5 (from -r /home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt (line 17))
Using cached bitarray-2.3.5.tar.gz (88 kB)
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Collecting enum34==1.1.10 (from -r /home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt (line 19))
Using cached enum34-1.1.10-py3-none-any.whl (11 kB)
Collecting lxml==4.7.1 (from -r /home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt (line 21))
Downloading lxml-4.7.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (6.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.9/6.9 MB 19.5 MB/s eta 0:00:00
Collecting pyang==2.5.2 (from -r /home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt (line 25))
Downloading pyang-2.5.2-py2.py3-none-any.whl (595 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 595.5/595.5 kB 11.1 MB/s eta 0:00:00
Collecting pyangbind==0.8.1 (from -r /home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt (line 29))
Downloading pyangbind-0.8.1.tar.gz (48 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 48.6/48.6 kB 921.1 kB/s eta 0:00:00
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Collecting pyyaml==5.4.1 (from -r /home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt (line 31))
Using cached PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl (662 kB)
Collecting regex==2021.11.10 (from -r /home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt (line 33))
Downloading regex-2021.11.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (764 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 764.7/764.7 kB 7.9 MB/s eta 0:00:00
Collecting six==1.16.0 (from -r /home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt (line 35))
Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Building wheels for collected packages: bitarray, pyangbind
Building wheel for bitarray (setup.py): started
Building wheel for bitarray (setup.py): finished with status 'done'
Created wheel for bitarray: filename=bitarray-2.3.5-cp38-cp38-linux_x86_64.whl size=188743 sha256=198c379bc35ab9904372d9ebab9c1df44f6e6bee341adc8d2301d1717d374918
Stored in directory: /home/jenkins/workspace/IM-stage_2-merge_v10.0/.cache/pip/wheels/94/69/4b/830f24f80f3064bf446eb37eb441d7c1af74eda281bc2d9d03
ERROR: Wheel 'bitarray' located at /home/jenkins/workspace/IM-stage_2-merge_v10.0/.cache/pip/wheels/94/69/4b/830f24f80f3064bf446eb37eb441d7c1af74eda281bc2d9d03/bitarray-2.3.5-cp38-cp38-linux_x86_64.whl is invalid.
[notice] A new release of pip is available: 23.3.1 -> 23.3.2
[notice] To update, run: pip install --upgrade pip
=================================== log end ====================================
ERROR: could not install deps [-r/home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt]; v = InvocationError('/tmp/.tox/pylint/bin/python -m pip install -r/home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt', 1)
=================================== log end ====================================
✖ FAIL pylint in 12.689 seconds
✔ OK black in 17.784 seconds
black create: /tmp/.tox/black
black installdeps: -r/home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt
black installed: bitarray==2.3.5,enum34==1.1.10,lxml==4.7.1,pyang==2.5.2,pyangbind==0.8.1,PyYAML==5.4.1,regex==2021.11.10,six==1.16.0
black run-test-pre: PYTHONHASHSEED='926454020'
black run-test: commands[0] | python3 -c 'print("Skipping due to generated code")'
Skipping due to generated code
✔ OK flake8 in 18.298 seconds
flake8 create: /tmp/.tox/flake8
flake8 installdeps: -r/home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt
flake8 installed: bitarray==2.3.5,enum34==1.1.10,lxml==4.7.1,pyang==2.5.2,pyangbind==0.8.1,PyYAML==5.4.1,regex==2021.11.10,six==1.16.0
flake8 run-test-pre: PYTHONHASHSEED='124552661'
flake8 run-test: commands[0] | python3 -c 'print("Skipping due to generated code")'
Skipping due to generated code
✔ OK safety in 41.603 seconds
safety create: /tmp/.tox/safety
safety installdeps: -r/home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt, safety
safety installed: Authlib==1.3.0,bitarray==2.3.5,certifi==2023.11.17,cffi==1.16.0,charset-normalizer==3.3.2,click==8.1.7,cryptography==42.0.1,dparse==0.6.4b0,enum34==1.1.10,idna==3.6,Jinja2==3.1.3,lxml==4.7.1,markdown-it-py==3.0.0,MarkupSafe==2.1.4,marshmallow==3.20.2,mdurl==0.1.2,packaging==23.0,pyang==2.5.2,pyangbind==0.8.1,pycparser==2.21,pydantic==1.10.14,Pygments==2.17.2,PyYAML==5.4.1,regex==2021.11.10,requests==2.31.0,rich==13.7.0,ruamel.yaml==0.18.5,ruamel.yaml.clib==0.2.8,safety==3.0.1,safety-schemas==0.0.1,six==1.16.0,tomli==2.0.1,typer==0.9.0,typing_extensions==4.9.0,urllib3==2.1.0
safety run-test-pre: PYTHONHASHSEED='527399339'
safety run-test: commands[0] | - safety check --full-report
+==============================================================================+
/$$$$$$ /$$
/$$__ $$ | $$
/$$$$$$$ /$$$$$$ | $$ \__//$$$$$$ /$$$$$$ /$$ /$$
/$$_____/ |____ $$| $$$$ /$$__ $$|_ $$_/ | $$ | $$
| $$$$$$ /$$$$$$$| $$_/ | $$$$$$$$ | $$ | $$ | $$
\____ $$ /$$__ $$| $$ | $$_____/ | $$ /$$| $$ | $$
/$$$$$$$/| $$$$$$$| $$ | $$$$$$$ | $$$$/| $$$$$$$
|_______/ \_______/|__/ \_______/ \___/ \____ $$
/$$ | $$
| $$$$$$/
by safetycli.com \______/
+==============================================================================+
[1mREPORT[0m
[31m[22m Safety is using PyUp's free open-source vulnerability database. This
data is 30 days old and limited. [0m
[31m For real-time enhanced vulnerability data, fix recommendations, severity
reporting, cybersecurity support, team and project policy management and more
sign up at https://pyup.io or email sales@pyup.io[0m
Safety [1mv3.0.1[0m is scanning for [1mVulnerabilities[0m[1m...[0m
[1m Scanning dependencies[0m in your [1menvironment:[0m
-> /usr/lib/python3.8/lib-dynload
-> /usr/lib/python38.zip
-> /usr/lib/python3.8
-> /tmp/.tox/safety/lib/python3.8/site-packages
-> /tmp/.tox/safety/bin
Using [1mopen-source vulnerability database[0m
[1m Found and scanned 38 packages[0m
Timestamp [1m2024-01-26 09:10:28[0m
[1m 1[0m[1m vulnerability reported[0m
[1m 0[0m[1m vulnerabilities ignored[0m
+==============================================================================+
[1mVULNERABILITIES REPORTED[0m
+==============================================================================+
[31m-> Vulnerability found in lxml version 4.7.1[0m
[1m Vulnerability ID: [0m50748
[1m Affected spec: [0m<4.9.1
[1m ADVISORY: [0mLxml 4.9.1 includes a fix for CVE-2022-2309: NULL
Pointer Dereference allows attackers to cause a denial of service (or
application crash). This only applies when lxml is used together with
libxml2 2.9.10 through 2.9.14. libxml2 2.9.9 and earlier are not affected.
It allows triggering crashes through forged input data, given a vulnerable
code sequence in the application. The vulnerability is caused by the
iterwalk function (also used by the canonicalize function). Such code
shouldn't be in wide-spread use, given that parsing + iterwalk would
usually be replaced with the more efficient iterparse function. However,
an XML converter that serialises to C14N would also be vulnerable, for
example, and there are legitimate use cases for this code sequence. If
untrusted input is received (also remotely) and processed via iterwalk
function, a crash can be triggered.
[1m CVE-2022-2309[0m
[1m For more information about this vulnerability, visit
[0mhttps://data.safetycli.com/v/50748/97c[0m
To ignore this vulnerability, use PyUp vulnerability id 50748 in safety’s
ignore command-line argument or add the ignore to your safety policy file.
+==============================================================================+
[32m[1mREMEDIATIONS[0m
1 vulnerability was reported in 1 package. For detailed remediation & fix
recommendations, upgrade to a commercial license.
+==============================================================================+
Scan was completed. 1 vulnerability was reported.
+==============================================================================+
[31m[22m Safety is using PyUp's free open-source vulnerability database. This
data is 30 days old and limited. [0m
[31m For real-time enhanced vulnerability data, fix recommendations, severity
reporting, cybersecurity support, team and project policy management and more
sign up at https://pyup.io or email sales@pyup.io[0m
+==============================================================================+[0m
✔ OK cover in 1 minute, 36.425 seconds
cover create: /tmp/.tox/cover
cover installdeps: -r/home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements.txt, -r/home/jenkins/workspace/IM-stage_2-merge_v10.0/requirements-test.txt
cover develop-inst: /home/jenkins/workspace/IM-stage_2-merge_v10.0
cover installed: bitarray==2.3.5,coverage==6.2,enum34==1.1.10,lxml==4.7.1,nose2==0.10.0,-e git+https://osm.etsi.org/gerrit/osm/IM.git@8aef22e6e453948e531839cb5cd3f8bd9336f9d8#egg=osm_im,pyang==2.5.2,pyangbind==0.8.1,PyYAML==5.4.1,regex==2021.11.10,six==1.16.0
cover run-test-pre: PYTHONHASHSEED='363507898'
cover run-test: commands[0] | sh -c 'make clean'
cover run-test: commands[1] | sh -c 'make models Q=""'
git clone --single-branch --branch v2.6.1 https://forge.etsi.org/rep/nfv/SOL006.git sol006_model
Cloning into 'sol006_model'...
patch -p2 < patch/deref_warnings.patch
patching file sol006_model/src/yang/etsi-nfv-ns.yang
patch -p2 < patch/nested_workaround.patch
patching file sol006_model/src/yang/etsi-nfv-ns.yang
wget -q https://raw.githubusercontent.com/YangModels/yang/master/standard/ietf/RFC/ietf-yang-types%402013-07-15.yang -O models/yang/ietf-yang-types.yang
wget -q https://raw.githubusercontent.com/YangModels/yang/master/standard/ietf/RFC/ietf-inet-types%402013-07-15.yang -O models/yang/ietf-inet-types.yang
cp models/yang/ietf-yang-types.yang sol006_model/src/yang/ietf-yang-types.yang
cp models/yang/ietf-inet-types.yang sol006_model/src/yang/ietf-inet-types.yang
echo generating vnfd.py from vnfd.yang
generating vnfd.py from vnfd.yang
pyang -Werror --path models/yang --plugindir "/tmp/.tox/cover/lib/python3.8/site-packages/pyangbind/plugin" -f pybind -o osm_im/vnfd.py models/yang/vnfd.yang
echo generating nsd.py from nsd.yang
generating nsd.py from nsd.yang
pyang -Werror --path models/yang --plugindir "/tmp/.tox/cover/lib/python3.8/site-packages/pyangbind/plugin" -f pybind -o osm_im/nsd.py models/yang/nsd.yang
echo generating nst.py from nst.yang
generating nst.py from nst.yang
pyang -Werror --path models/yang --plugindir "/tmp/.tox/cover/lib/python3.8/site-packages/pyangbind/plugin" -f pybind -o osm_im/nst.py models/yang/nst.yang
echo generating nsi.py from nsi.yang
generating nsi.py from nsi.yang
pyang -Werror --path models/yang --plugindir "/tmp/.tox/cover/lib/python3.8/site-packages/pyangbind/plugin" -f pybind -o osm_im/nsi.py models/yang/nsi.yang
echo generating etsi-nfv-vnfd.py from etsi-nfv-vnfd.yang
generating etsi-nfv-vnfd.py from etsi-nfv-vnfd.yang
pyang -Werror --path sol006_model/src/yang --plugindir "/tmp/.tox/cover/lib/python3.8/site-packages/pyangbind/plugin" -f pybind -o osm_im/etsi-nfv-vnfd.py models/augments/* sol006_model/src/yang/etsi-nfv-vnfd.yang
echo generating etsi-nfv-nsd.py from etsi-nfv-nsd.yang
generating etsi-nfv-nsd.py from etsi-nfv-nsd.yang
pyang -Werror --path sol006_model/src/yang --plugindir "/tmp/.tox/cover/lib/python3.8/site-packages/pyangbind/plugin" -f pybind -o osm_im/etsi-nfv-nsd.py models/augments/* sol006_model/src/yang/etsi-nfv-nsd.yang
mv osm_im/etsi-nfv-nsd.py osm_im/etsi_nfv_nsd.py
mv osm_im/etsi-nfv-vnfd.py osm_im/etsi_nfv_vnfd.py
cover run-test: commands[2] | sh -c 'rm -f nosetests.xml'
cover run-test: commands[3] | coverage erase
cover run-test: commands[4] | nose2 -C --coverage osm_im -s tests
.....
----------------------------------------------------------------------
Ran 5 tests in 2.821s
OK
Name Stmts Miss Cover
----------------------------------------------
osm_im/__init__.py 0 0 100%
osm_im/etsi_nfv_nsd.py 15703 11505 27%
osm_im/etsi_nfv_vnfd.py 12944 7957 39%
osm_im/im_translation.py 500 51 90%
osm_im/nsd.py 5183 3935 24%
osm_im/nsi.py 4950 4950 0%
osm_im/nst.py 2872 2180 24%
osm_im/validation.py 50 12 76%
osm_im/vnfd.py 10950 7835 28%
----------------------------------------------
TOTAL 53152 38425 28%
cover run-test: commands[5] | coverage report '--omit=*tests*'
Name Stmts Miss Cover
----------------------------------------------
osm_im/__init__.py 0 0 100%
osm_im/etsi_nfv_nsd.py 15703 11505 27%
osm_im/etsi_nfv_vnfd.py 12944 7957 39%
osm_im/im_translation.py 500 51 90%
osm_im/nsd.py 5183 3935 24%
osm_im/nsi.py 4950 4950 0%
osm_im/nst.py 2872 2180 24%
osm_im/validation.py 50 12 76%
osm_im/vnfd.py 10950 7835 28%
----------------------------------------------
TOTAL 53152 38425 28%
cover run-test: commands[6] | coverage html -d ./cover '--omit=*tests*'
Wrote HTML report to ./cover/index.html
cover run-test: commands[7] | coverage xml -o coverage.xml '--omit=*tests*'
Wrote XML report to coverage.xml
___________________________________ summary ____________________________________
black: commands succeeded
cover: commands succeeded
flake8: commands succeeded
ERROR: pylint: parallel child exit code 1
safety: commands succeeded