From a29ea09e6d707f0dd233a8b0e17d9dbb8c1f7ccf Mon Sep 17 00:00:00 2001 From: "Rama Sasthri, Kristipati" Date: Wed, 19 Jul 2023 16:08:15 +0530 Subject: [PATCH] spytest 2.2 - python 3 support and dependencies update (#8925) What is the motivation for this PR? Migrate to python 3 How did you do it? Update the dependencies How did you verify/test it? run spytest test cases Co-authored-by: Rama Sasthri, Kristipati --- spytest/bin/clean.sh | 1 - spytest/bin/env | 48 +-- spytest/bin/generate_api_docs.sh | 14 - spytest/bin/lint.sh | 486 ++++++++++++++++++++-------- spytest/bin/python | 18 +- spytest/bin/python2 | 4 + spytest/bin/python3 | 3 +- spytest/bin/requirements0.txt | 24 -- spytest/bin/requirements1.txt | 13 - spytest/bin/spytest | 14 +- spytest/bin/spytest2 | 4 + spytest/bin/spytest3 | 3 +- spytest/bin/tgen_folders.txt | 429 +++++++++++++++++++++++- spytest/bin/tools_install.sh | 148 ++------- spytest/bin/ubuntu18_deps.sh | 5 + spytest/bin/upgrade_requirements.sh | 137 +++++++- 16 files changed, 1009 insertions(+), 342 deletions(-) delete mode 100755 spytest/bin/generate_api_docs.sh create mode 100755 spytest/bin/python2 delete mode 100644 spytest/bin/requirements0.txt delete mode 100644 spytest/bin/requirements1.txt create mode 100755 spytest/bin/spytest2 diff --git a/spytest/bin/clean.sh b/spytest/bin/clean.sh index 34999ea4f4..04920c8bdf 100755 --- a/spytest/bin/clean.sh +++ b/spytest/bin/clean.sh @@ -5,4 +5,3 @@ cd $(dirname $0)/.. find . -name __pycache__ | xargs rm -rf find . -name .pytest_cache | xargs rm -rf find . -name "*.pyc" | xargs rm -f - diff --git a/spytest/bin/env b/spytest/bin/env index b72d0810ab..e8b97176af 100755 --- a/spytest/bin/env +++ b/spytest/bin/env @@ -1,33 +1,38 @@ #!/bin/sh -if [ -z "$SCID" ]; then +if [ -z "$SCID" -o ! -d "$SCID" ]; then export SCID=/opt/projects/scid if [ ! -d $SCID ]; then export SCID=/projects/scid - else - echo "================== USING LOCAL SPYTEST TOOLS =================" fi fi if [ "$SCID_PYTHON_BIN" != "" ]; then - echo "USING Python From $SCID_PYTHON_BIN" -elif [ "$SPYTEST_PYTHON_VERSION" = "3.6.6" ]; then - export SCID_PYTHON_BIN=$SCID/tools/ActivPython/3.6.6/bin -elif [ "$SPYTEST_PYTHON_VERSION" = "3.7.1" ]; then - export SCID_PYTHON_BIN=$SCID/tools/ActivPython/3.7.1/bin + echo "# Python From $SCID_PYTHON_BIN" +elif [ -z "$SPYTEST_PYTHON_VERSION" -o "$SPYTEST_PYTHON_VERSION" = "current" ]; then + export SCID_PYTHON_BIN=$SCID/tools/Python-3.8.12/bin + if [ ! -f $SCID_PYTHON_BIN/python ]; then + export SCID_PYTHON_BIN=$SCID/tools/Python-3.8/bin + fi + #echo "# Branch default Python From $SCID_PYTHON_BIN" +elif [ -d $SCID/tools/Python-$SPYTEST_PYTHON_VERSION/bin ]; then + export SCID_PYTHON_BIN=$SCID/tools/Python-$SPYTEST_PYTHON_VERSION/bin +elif [ -d $SCID/tools/ActivPython/$SPYTEST_PYTHON_VERSION/bin ]; then + export SCID_PYTHON_BIN=$SCID/tools/ActivPython/$SPYTEST_PYTHON_VERSION/bin +elif [ -d $SCID/tools/ActivPython/venv/$SPYTEST_PYTHON_VERSION/bin ]; then + export SCID_PYTHON_BIN=$SCID/tools/ActivPython/venv/$SPYTEST_PYTHON_VERSION/bin else - export SCID_PYTHON_BIN=$SCID/tools/ActivPython/venv/3.8.0/bin - export SCID_PYTHON_BIN=$SCID/tools/ActivPython/3.7.1/bin - export SCID_PYTHON_BIN=$SCID/tools/ActivPython/3.6.6/bin - export SCID_PYTHON_BIN=$SCID/tools/ActivPython/current/bin -fi - -if [ -z "$SCID_TGEN_PATH=" ]; then - export SCID_TGEN_PATH=$SCID/tgen + export SCID_PYTHON_BIN=$SCID/tools/ActivPython/venv/3.8.0/bin + export SCID_PYTHON_BIN=$SCID/tools/ActivPython/current/bin fi -if [ -z "$SPYTEST_PYTHON" ]; then - export SPYTEST_PYTHON=$SCID_PYTHON_BIN/python +export SCID_TGEN_PATH=$SCID/tgen +if [ -z "$SPYTEST_PYTHON" -o -n "$SPYTEST_PYTHON_VERSION" ]; then + if [ -f $SCID_PYTHON_BIN/python$SPYTEST_PYTHON_VERSION ]; then + export SPYTEST_PYTHON=$SCID_PYTHON_BIN/python$SPYTEST_PYTHON_VERSION + else + export SPYTEST_PYTHON=$SCID_PYTHON_BIN/python + fi fi export PATH=$SCID/tools/bin:$PATH @@ -41,7 +46,10 @@ if [ -z "$SCID_TCL85_BIN" ]; then fi if [ ! -d $SCID_TCL85_BIN ]; then # use native tcl 8.5 - SCID_TCL85_BIN=$(dirname $(which tclsh8.5)) + tchsh85=$(which tclsh8.5) + if [ -n "$tchsh85" ]; then + SCID_TCL85_BIN=$(dirname $tchsh85) + fi fi export SCID_TCL84_BIN=$SCID/tools/tcl/8.4.20/bin - +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SCID/tools/lib diff --git a/spytest/bin/generate_api_docs.sh b/spytest/bin/generate_api_docs.sh deleted file mode 100755 index cb03474ebe..0000000000 --- a/spytest/bin/generate_api_docs.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -dir=$(dirname $0) -dir=$(cd $dir;pwd -P) -ddir=$(cd $dir/..;pwd -P) - -pushd $ddir/docs/source -# create rst files -$dir/python -m sphinx.apidoc -f -o . ../.. -# create html documents -$dir/python -m sphinx $ddir/docs/source $ddir/docs/build -# open index in default browser -xdg-open $ddir/docs/build/index.html - diff --git a/spytest/bin/lint.sh b/spytest/bin/lint.sh index 0414f4b984..f76d4d7e8a 100755 --- a/spytest/bin/lint.sh +++ b/spytest/bin/lint.sh @@ -1,11 +1,12 @@ -#!/bin/sh +#!/bin/bash dir=$(dirname $0) dir=$(cd $dir;pwd -P) ddir=$(cd $dir/..;pwd -P) IGNORE1="" -IGNORE2="" +INGORE2="" +INGORE3="" IGNORE1="$IGNORE1 --disable=W0311" #bad-indentation @@ -13,106 +14,206 @@ IGNORE1="$IGNORE1 --disable=C0103" #invalid-name IGNORE1="$IGNORE1 --disable=C0111" #missing-docstring IGNORE1="$IGNORE1 --disable=C0305" #trailing-newlines IGNORE1="$IGNORE1 --disable=C0325" #superfluous-parens -IGNORE1="$IGNORE1 --disable=C0326" #bad-whitespace +IGNORE2="$IGNORE2 --disable=C0326" #bad-whitespace IGNORE1="$IGNORE1 --disable=C0410" #multiple-imports IGNORE1="$IGNORE1 --disable=C0413" #wrong-import-position IGNORE1="$IGNORE1 --disable=C0415" #import-outside-toplevel -IGNORE2="$IGNORE2 --disable=W0102" #dangerous-default-value -IGNORE2="$IGNORE2 --disable=W0105" #pointless-string-statement -#IGNORE2="$IGNORE2 --disable=W0106" #expression-not-assigned -IGNORE2="$IGNORE2 --disable=W0107" #unnecessary-pass -IGNORE2="$IGNORE2 --disable=W0122" #exec-used -IGNORE2="$IGNORE2 --disable=W0123" #eval-used -IGNORE2="$IGNORE2 --disable=W0201" #attribute-defined-outside-init -IGNORE2="$IGNORE2 --disable=W0212" #protected-access +IGNORE1="$IGNORE1 --disable=W0102" #dangerous-default-value +IGNORE1="$IGNORE1 --disable=W0105" #pointless-string-statement +#IGNORE1="$IGNORE1 --disable=W0106" #expression-not-assigned +IGNORE1="$IGNORE1 --disable=W0107" #unnecessary-pass +IGNORE1="$IGNORE1 --disable=W0122" #exec-used +IGNORE1="$IGNORE1 --disable=W0123" #eval-used +IGNORE1="$IGNORE1 --disable=W0201" #attribute-defined-outside-init +IGNORE1="$IGNORE1 --disable=W0212" #protected-access IGNORE2="$IGNORE2 --disable=W0232" #no-init -IGNORE2="$IGNORE2 --disable=W0301" #unnecessary-semicolon +IGNORE1="$IGNORE1 --disable=W0237" #arguments-renamed +IGNORE1="$IGNORE1 --disable=W0301" #unnecessary-semicolon IGNORE2="$IGNORE2 --disable=W0312" #mixed-indentation -IGNORE2="$IGNORE2 --disable=W0401" #wildcard-import -IGNORE2="$IGNORE2 --disable=W0404" #reimported -IGNORE2="$IGNORE2 --disable=W0511" #fixme -IGNORE2="$IGNORE2 --disable=W0601" #global-variable-undefined -IGNORE2="$IGNORE2 --disable=W0603" #global-statement -IGNORE2="$IGNORE2 --disable=W0604" #global-at-module-level -#IGNORE2="$IGNORE2 --disable=W0611" #unused-import -#IGNORE2="$IGNORE2 --disable=W0612" #unused-variable -IGNORE2="$IGNORE2 --disable=W0613" #unused-argument -IGNORE2="$IGNORE2 --disable=W0614" #unused-wildcard-import -IGNORE2="$IGNORE2 --disable=W0621" #redefined-outer-name -IGNORE2="$IGNORE2 --disable=W0622" #redefined-builtin -IGNORE2="$IGNORE2 --disable=W0702" #bare-except -IGNORE2="$IGNORE2 --disable=W0703" #broad-except - -IGNORE2="$IGNORE2 --disable=C0112" #empty-docstring -IGNORE2="$IGNORE2 --disable=C0113" #unneeded-not -#IGNORE2="$IGNORE2 --disable=C0121" #singleton-comparison -IGNORE2="$IGNORE2 --disable=C0123" #unidiomatic-typecheck -IGNORE2="$IGNORE2 --disable=C0200" #consider-using-enumerate -IGNORE2="$IGNORE2 --disable=C0201" #consider-iterating-dictionary -IGNORE2="$IGNORE2 --disable=C0301" #line-too-long -IGNORE2="$IGNORE2 --disable=C0302" #too-many-lines -IGNORE2="$IGNORE2 --disable=C0303" #trailing-whitespace -IGNORE2="$IGNORE2 --disable=C0304" #missing-final-newline -IGNORE2="$IGNORE2 --disable=C0321" #multiple-statements +IGNORE1="$IGNORE1 --disable=W0401" #wildcard-import +#IGNORE1="$IGNORE1 --disable=W0404" #reimported +IGNORE1="$IGNORE1 --disable=W0511" #fixme +IGNORE1="$IGNORE1 --disable=W0601" #global-variable-undefined +IGNORE1="$IGNORE1 --disable=W0602" #global-variable-not-assigned +IGNORE1="$IGNORE1 --disable=W0603" #global-statement +IGNORE1="$IGNORE1 --disable=W0604" #global-at-module-level +#IGNORE1="$IGNORE1 --disable=W0611" #unused-import +#IGNORE1="$IGNORE1 --disable=W0612" #unused-variable +IGNORE1="$IGNORE1 --disable=W0613" #unused-argument +IGNORE1="$IGNORE1 --disable=W0614" #unused-wildcard-import +IGNORE1="$IGNORE1 --disable=W0621" #redefined-outer-name +IGNORE1="$IGNORE1 --disable=W0622" #redefined-builtin +IGNORE1="$IGNORE1 --disable=W0702" #bare-except +IGNORE1="$IGNORE1 --disable=W0703" #broad-except +IGNORE3="$IGNORE3 --disable=W0707" #raise-missing-from + +IGNORE1="$IGNORE1 --disable=C0112" #empty-docstring +#IGNORE1="$IGNORE1 --disable=C0113" #unneeded-not +#IGNORE1="$IGNORE1 --disable=C0121" #singleton-comparison +IGNORE1="$IGNORE1 --disable=C0123" #unidiomatic-typecheck +IGNORE1="$IGNORE1 --disable=C0200" #consider-using-enumerate +IGNORE1="$IGNORE1 --disable=C0201" #consider-iterating-dictionary +IGNORE1="$IGNORE1 --disable=C0301" #line-too-long +IGNORE1="$IGNORE1 --disable=C0302" #too-many-lines +IGNORE1="$IGNORE1 --disable=C0303" #trailing-whitespace +IGNORE1="$IGNORE1 --disable=C0304" #missing-final-newline +IGNORE1="$IGNORE1 --disable=C0321" #multiple-statements IGNORE2="$IGNORE2 --disable=C0330" #bad-continuation -IGNORE2="$IGNORE2 --disable=C0411" #wrong-import-order -IGNORE2="$IGNORE2 --disable=C0412" #ungrouped-imports +IGNORE1="$IGNORE1 --disable=C0411" #wrong-import-order +IGNORE1="$IGNORE1 --disable=C0412" #ungrouped-imports IGNORE2="$IGNORE2 --disable=C1001" #old-style-class -IGNORE2="$IGNORE2 --disable=C1801" #len-as-condition - -#IGNORE2="$IGNORE2 --disable=E0102" #function-redefined -IGNORE2="$IGNORE2 --disable=E0632" #unbalanced-tuple-unpacking -IGNORE2="$IGNORE2 --disable=E1128" #assignment-from-none -#IGNORE2="$IGNORE2 --disable=E1305" #too-many-format-args - -IGNORE2="$IGNORE2 --disable=R0101" #too-many-nested-blocks -IGNORE2="$IGNORE2 --disable=R0102" #simplifiable-if-statement -IGNORE2="$IGNORE2 --disable=R0201" #no-self-use -IGNORE2="$IGNORE2 --disable=R0205" #useless-object-inheritance -IGNORE2="$IGNORE2 --disable=R0902" #too-many-instance-attributes -IGNORE2="$IGNORE2 --disable=R0903" #too-few-public-methods -IGNORE2="$IGNORE2 --disable=R0904" #too-many-public-methods -IGNORE2="$IGNORE2 --disable=R0911" #too-many-return-statements -IGNORE2="$IGNORE2 --disable=R0912" #too-many-branches -IGNORE2="$IGNORE2 --disable=R0913" #too-many-arguments -IGNORE2="$IGNORE2 --disable=R0914" #too-many-locals -IGNORE2="$IGNORE2 --disable=R0915" #too-many-statements -IGNORE2="$IGNORE2 --disable=R0916" #too-many-boolean-expressions -IGNORE2="$IGNORE2 --disable=R1705" #no-else-return -IGNORE2="$IGNORE2 --disable=R1710" #inconsistent-return-statements -IGNORE2="$IGNORE2 --disable=R1711" #useless-return - -IGNORE2="$IGNORE2 --disable=R1714" #consider-using-in -IGNORE2="$IGNORE2 --disable=R1716" #chained-comparison -IGNORE2="$IGNORE2 --disable=R1719" #simplifiable-if-expression -IGNORE2="$IGNORE2 --disable=R1720" #no-else-raise -IGNORE2="$IGNORE2 --disable=R1723" #no-else-break -IGNORE2="$IGNORE2 --disable=R1724" #no-else-continue - -exclude="__init__.py scheduler/" -LINT_PYVER=0 -ERR_TEMP=$(mktemp) -REPORT=lint_report.log +IGNORE1="$IGNORE1 --disable=C1801" #len-as-condition + +#IGNORE1="$IGNORE1 --disable=E0102" #function-redefined +IGNORE1="$IGNORE1 --disable=E0632" #unbalanced-tuple-unpacking +IGNORE1="$IGNORE1 --disable=E1128" #assignment-from-none +#IGNORE1="$IGNORE1 --disable=E1305" #too-many-format-args + +IGNORE1="$IGNORE1 --disable=R0022" #useless-option-value +IGNORE1="$IGNORE1 --disable=R0101" #too-many-nested-blocks +IGNORE1="$IGNORE1 --disable=R0102" #simplifiable-if-statement +IGNORE1="$IGNORE1 --disable=R0201" #no-self-use +IGNORE1="$IGNORE1 --disable=R0205" #useless-object-inheritance +IGNORE1="$IGNORE1 --disable=R0902" #too-many-instance-attributes +IGNORE1="$IGNORE1 --disable=R0903" #too-few-public-methods +IGNORE1="$IGNORE1 --disable=R0904" #too-many-public-methods +IGNORE1="$IGNORE1 --disable=R0911" #too-many-return-statements +IGNORE1="$IGNORE1 --disable=R0912" #too-many-branches +IGNORE1="$IGNORE1 --disable=R0913" #too-many-arguments +IGNORE1="$IGNORE1 --disable=R0914" #too-many-locals +IGNORE1="$IGNORE1 --disable=R0915" #too-many-statements +IGNORE1="$IGNORE1 --disable=R0916" #too-many-boolean-expressions +IGNORE1="$IGNORE1 --disable=R1705" #no-else-return +IGNORE1="$IGNORE1 --disable=R1710" #inconsistent-return-statements +IGNORE1="$IGNORE1 --disable=R1711" #useless-return +IGNORE1="$IGNORE1 --disable=R1714" #consider-using-in +IGNORE1="$IGNORE1 --disable=R1716" #chained-comparison +IGNORE1="$IGNORE1 --disable=R1719" #simplifiable-if-expression +IGNORE1="$IGNORE1 --disable=R1720" #no-else-raise +IGNORE1="$IGNORE1 --disable=R1723" #no-else-break +IGNORE1="$IGNORE1 --disable=R1724" #no-else-continue +IGNORE3="$IGNORE3 --disable=R1725" #super-with-arguments +IGNORE3="$IGNORE3 --disable=R1732" #consider-using-with + +if [ "$LINT_IGNORE_UNUSED" == "1" ]; then + IGNORE1="$IGNORE1 --disable=W0611" #unused-import + IGNORE1="$IGNORE1 --disable=W0612" #unused-variable +fi + +IGNORE2="$IGNORE2 --disable=C0122" #misplaced-comparison-constant +IGNORE1="$IGNORE1 --disable=W1308" #duplicate-string-formatting-argument +IGNORE1="$IGNORE1 --disable=W1309" #f-string-without-interpolation +IGNORE1="$IGNORE1 --disable=R1715" #consider-using-get +IGNORE1="$IGNORE1 --disable=R1718" #consider-using-set-comprehension +IGNORE1="$IGNORE1 --disable=R1721" #unnecessary-comprehension +IGNORE1="$IGNORE1 --disable=R1728" #consider-using-generator +IGNORE1="$IGNORE1 --disable=W1401" #anomalous-backslash-in-string + +IGNORE3="$IGNORE3 --disable=W1514" #unspecified-encoding +IGNORE3="$IGNORE3 --disable=R1734" #use-list-literal +IGNORE3="$IGNORE3 --disable=R1735" #use-dict-literal +IGNORE3="$IGNORE3 --disable=C0206" #consider-using-dict-items +IGNORE3="$IGNORE3 --disable=C0209" #consider-using-f-string +IGNORE3="$IGNORE3 --disable=C0207" #use-maxsplit-arg +IGNORE3="$IGNORE3 --disable=R0402" #consider-using-from-import +IGNORE3="$IGNORE3 --disable=W1406" #redundant-u-string-prefix +IGNORE3="$IGNORE3 --disable=R1729" #use-a-generator + +IGNORE3="$IGNORE3 --disable=C3001" #unnecessary-lambda-assignment + +exclude="apis/gnmi/openconfig apis/gnmi unused/" +exclude="$exclude apis/yang/autogen/bindings" +exclude="$exclude apis/yang/codegen/bindings" +exclude="$exclude apis/yang/codegen/test.py" +exclude="$exclude apis/yang/codegen/gnoi_bindings" +exclude="$exclude spytest/ddm/third-party" +exclude="$exclude tests/dell/infra/bgpcfgd_test.py" + +if [ "$LINT_EXCLUDE_KNOWN_FAILS" == "1" ]; then + exclude="$exclude apis/yang/codegen" + exclude="$exclude tests/dell" + exclude="$exclude tests/ut/acl_fbs" + exclude="$exclude tests/infra_ut/data_driven" + exclude="$exclude tests/systb" +fi + +LINT_PYVER=${LINT_PYVER:=3} +TMP_FOLD=$(mktemp -d) +trap "rm -rf $TMP_FOLD" EXIT +ERR_TEMP=$TMP_FOLD/err +DBG_FILE=lint_debug.log ERR_FILE=lint_errors.log +REP_FILE=lint_report.log + +if [ "$LINT_MODIFIED" == "1" ]; then + DBG_FILE=modified_lint_debug.log + ERR_FILE=modified_lint_errors.log + REP_FILE=modified_lint_report.log + #exclude="" + exclude="$exclude __init__.py" +fi + +#IGNORE1="$IGNORE1 --disable=W0612" #unused-variable if [ "$LINT_DAILY" == "1" ]; then - REPORT=daily_lint_report.log + DBG_FILE=daily_lint_debug.log ERR_FILE=daily_lint_errors.log - #IGNORE2="$IGNORE2 --disable=W0611" #unused-import - #IGNORE2="$IGNORE2 --disable=W0612" #unused-variable - IGNORE2="$IGNORE2 --disable=W0106" #expression-not-assigned - exclude="__init__.py ddm/ tests/ut/ tests/systb/ scheduler/ tests/dell" + REP_FILE=daily_lint_report.log + #IGNORE1="$IGNORE1 --disable=W0612" #unused-variable fi +IGNORE1="$IGNORE1 --disable=W0106" #expression-not-assigned +IGNORE1="$IGNORE1 --disable=W0631" #undefined-loop-variable +IGNORE1="$IGNORE1 --disable=R1704" #redefined-argument-from-local -IGNORE="$IGNORE1" -IGNORE="$IGNORE1 $IGNORE2" +RUFF_OPTS="$RUFF_OPTS --ignore E401" #multiple-imports-on-one-line +RUFF_OPTS="$RUFF_OPTS --ignore E401" #multiple-imports-on-one-line +RUFF_OPTS="$RUFF_OPTS --ignore E402" #module-import-not-at-top-of-file +RUFF_OPTS="$RUFF_OPTS --ignore E501" #line-too-long +RUFF_OPTS="$RUFF_OPTS --ignore E701" #multiple-statements +RUFF_OPTS="$RUFF_OPTS --ignore E702" #multiple-statements-on-one-line-semicolon +RUFF_OPTS="$RUFF_OPTS --ignore E703" #useless-semicolon +RUFF_OPTS="$RUFF_OPTS --ignore E713" #not-in-test +RUFF_OPTS="$RUFF_OPTS --ignore E722" #bare-except +RUFF_OPTS="$RUFF_OPTS --ignore E731" #lambda-assignment +RUFF_OPTS="$RUFF_OPTS --ignore E741" #ambiguous-variable-name +RUFF_OPTS="$RUFF_OPTS --ignore F541" #f-string-missing-placeholders +RUFF_OPTS="$RUFF_OPTS --ignore W191" #Indentation contains tabs +RUFF_OPTS="$RUFF_OPTS --ignore W292" #No newline at end of file +RUFF_OPTS="$RUFF_OPTS --ignore W191" #Indentation contains tabs +RUFF_OPTS="$RUFF_OPTS --ignore W291" #Trailing whitespace +RUFF_OPTS="$RUFF_OPTS --ignore W293" #Blank line contains whitespace +RUFF_OPTS="$RUFF_OPTS --ignore PLW2901" +RUFF_OPTS="$RUFF_OPTS --ignore PLW0603" +RUFF_OPTS="$RUFF_OPTS --ignore PLC1901" -LINT2="$dir/python -m pylint --rcfile=$dir/.pylintrc $IGNORE" -LINT3="$dir/python3 -m pylint --rcfile=$dir/.pylintrc $IGNORE" -#PYFLAKES="$dir/python -m pyflakes" -#FLAKE8="$dir/python -m flake8 --select F --ignore=F401,F841" -#FLAKE8="$dir/python -m flake8 --select F" +LINT_TOOL="${LINT_TOOL:-ruff}" +if [ "$LINT_TOOL" = "pylint" ]; then + LINT_PYVER=3 +elif [ "$LINT_TOOL" = "pylint2" ]; then + LINT_PYVER=2 +elif [ "$LINT_TOOL" = "pylint3" ]; then + LINT_PYVER=3 +elif [ "$LINT_TOOL" = "pyflakes" ]; then + PYFLAKES="$dir/python -m pyflakes" + LINT2=""; LINT3="" +elif [ "$LINT_TOOL" = "ruff" -o "$LINT_TOOL" = "ruff-only" ]; then + RUFF="$dir/python -m ruff --select=F,E,W,PLE,PLW,PLC" +fi + +if [ "$LINT_TOOL" != "pyflakes" ]; then + RCFILE=$dir/.pylintrc$LINT_PYVER + if [ ! -f $RCFILE ]; then + RCFILE=$TMP_FOLD/.pylintrc + touch $RCFILE + fi + + LINT2="timeout 300 $dir/python2 -m pylint --max-parents=8 --rcfile=$RCFILE $IGNORE1 $IGNORE2" + LINT3="timeout 300 $dir/python3 -m pylint --rcfile=$RCFILE $IGNORE1 $IGNORE3" + #LINT3="$LINT3 --load-plugins perflint --disable=W8205" #dotted-import-in-loop + #FLAKE8="$dir/python -m flake8 --select F --ignore=F401,F841" + #FLAKE8="$dir/python -m flake8 --select F" +fi if [ $# -eq 0 ]; then files1=$(find $ddir/spytest/ -name "*.py") @@ -134,63 +235,196 @@ else done fi +cmd="grep -q" +for ex in $exclude; do + cmd="$cmd -e $ex" +done files2="" for f in $files;do - skip=0 - for ex in $exclude; do - if grep -q $ex <<< $f; then - skip=1 - break - fi - done - [ $skip -eq 1 ] || files2="$files2 $f" + if [ -z "$exclude" ]; then + files2="$files2 $f" + elif ! $cmd <<< $f; then + files2="$files2 $f" + fi done -rm -f $REPORT $ERR_FILE $ERR_TEMP +rm -f $DBG_FILE $ERR_FILE $REP_FILE $ERR_TEMP $REP_FILE.err line="\--------------------------------------------------------------------" score="Your code has been rated at 10.00" using="Using config file " -date | tee -a $REPORT | tee -a $ERR_FILE + +print() +{ + echo $(date +'%Y-%d-%m %H:%M:%S') $* +} + +print "Start...." | tee -a $DBG_FILE | tee -a $ERR_FILE for f in $files2;do + OPT_LINT_PYVER=${LINT_PYVER:=3} + + OPTS=""; OPTS2=""; OPTS3="" + if [[ $f == *utilities/common.py ]]; then + OPTS3="$OPTS3 --disable=W1515" + fi + + if [[ $f == */yang/* || $f == */infra_ut/data_driven/* ]]; then + OPT_LINT_PYVER=3 + fi + + if [[ $f == */test_ut_boot_time.py ]]; then + OPT_LINT_PYVER=3 + fi + + if [[ $f == */ut/acl_fbs/* || $f == */ut/flexDpb/* || $f == */ut/gnmi/* ]]; then + OPT_LINT_PYVER=3 + fi + + if [[ $f == */yang/codegen/* || $f == */yang/autogen/* ]]; then + OPTS3="$OPTS3 --disable=E0401" + OPTS3="$OPTS3 --disable=W0404" #reimported + OPTS3="$OPTS3 --disable=W0611" #unused-import + OPTS3="$OPTS3 --disable=R1706" + OPTS3="$OPTS3 --disable=W0127" + RUFF_OPTS="$RUFF_OPTS --ignore F401" #unused-import + RUFF_OPTS="$RUFF_OPTS --ignore E101" #mixed indentation + RUFF_OPTS="$RUFF_OPTS --ignore W191" #Indentation contains tabs + RUFF_OPTS="$RUFF_OPTS --ignore W291" #Trailing whitespace + RUFF_OPTS="$RUFF_OPTS --ignore W293" #Blank line contains whitespace + RUFF_OPTS="$RUFF_OPTS --ignore F811" #reimported + fi + + if [[ $f == */dell/* ]]; then + export SPYLINT_PYTHONPATH=$ddir/tests/dell/platform + OPTS2="$OPTS2 --disable=W0403" #relative-import + OPTS="$OPTS --disable=W0611" #unused-import + OPTS="$OPTS --disable=W0612" #unused-variable + OPTS="$OPTS --disable=W0404" #reimported + OPTS="$OPTS --disable=C0121" #singleton-comparison + OPTS="$OPTS --disable=R0123" #literal-comparison + OPTS="$OPTS --disable=E1305" #too-many-format-args + OPTS="$OPTS --disable=C0113" #unneeded-not + RUFF_OPTS="$RUFF_OPTS --ignore E101" #mixed indentation + RUFF_OPTS="$RUFF_OPTS --ignore F401" #unused-import + RUFF_OPTS="$RUFF_OPTS --ignore F841" #unused-variable + RUFF_OPTS="$RUFF_OPTS --ignore E711" #none-comparison + RUFF_OPTS="$RUFF_OPTS --ignore E712" #true-false-comparison + RUFF_OPTS="$RUFF_OPTS --ignore E714" #true-false-comparison + RUFF_OPTS="$RUFF_OPTS --ignore F632" #literal-comparison + RUFF_OPTS="$RUFF_OPTS --ignore PLW0602" + fi + + if [[ $f == */systb/campus/* ]]; then + export SPYLINT_PYTHONPATH=$ddir/tests/systb/campus + basef=$(basename $f) + if [[ $basef != test_* ]]; then + continue + fi + OPTS2="$OPTS2 --disable=W0403" #relative-import + OPTS="$OPTS --disable=W0611" #unused-import + OPTS="$OPTS --disable=W0612" #unused-variable + OPTS="$OPTS --disable=W0404" #reimported + elif [[ $f == */systb/* ]]; then + basef=$(basename $f) + if [[ $basef != test_* ]]; then + continue + fi + if [[ $f == */systb/dc/vxlan/* ]]; then + systb_dc=$ddir/tests/systb/dc + systb_vxlan=$systb_dc/vxlan + export SPYLINT_PYTHONPATH=$systb_dc:$systb_vxlan + fi + #dirf1=$(cd $(dirname $f);pwd -P) + #dirf2=$(cd $(dirname $f)/..;pwd -P) + #export SPYLINT_PYTHONPATH=$dirf1:$dirf2:$dirf1/st_common:$dirf2/st_common + OPT_LINT_PYVER=3 + OPTS="$OPTS --disable=E0611" #no-name-in-module + OPTS2="$OPTS2 --disable=W0403" #relative-import + OPTS="$OPTS --disable=W0611" #unused-import + OPTS="$OPTS --disable=W0612" #unused-variable + OPTS="$OPTS --disable=W0404" #reimported + fi + + if [[ $f == */ddm/* ]]; then + OPTS="$OPTS --disable=C0121" #singleton-comparison + OPTS="$OPTS --disable=R0123" #literal-comparison + OPTS="$OPTS --disable=W0611" #unused-import + OPTS="$OPTS --disable=W0612" #unused-variable + OPTS="$OPTS --disable=W0404" #reimported + RUFF_OPTS="$RUFF_OPTS --ignore E101" #mixed indentation + RUFF_OPTS="$RUFF_OPTS --ignore E711" #none-comparison + RUFF_OPTS="$RUFF_OPTS --ignore E712" #true-false-comparison + RUFF_OPTS="$RUFF_OPTS --ignore F632" #literal-comparison + RUFF_OPTS="$RUFF_OPTS --ignore F401" #unused-import + RUFF_OPTS="$RUFF_OPTS --ignore F841" #unused-variable + RUFF_OPTS="$RUFF_OPTS --ignore F811" #reimported + fi + + if [ -n "$RUFF" ]; then + $RUFF $RUFF_OPTS $f 2>&1 > $ERR_TEMP + grep -q "may be undefined, or defined from star imports" $ERR_TEMP >/dev/null + if [ $? -ne 0 ]; then + print ================== RUFF $f | tee -a $DBG_FILE + lc=$(wc -l < $ERR_TEMP) + if [ $lc -gt 0 ]; then + print ================== RUFF $f | tee -a $ERR_FILE + cat $ERR_TEMP | tee -a $DBG_FILE $ERR_FILE + print $lc $f | tee -a $REP_FILE + fi + continue + elif [ "$LINT_TOOL" = "ruff-only" ]; then + echo "Try with pylint $f" | tee -a $REP_FILE.err + continue + else + echo "Using pylint $f" + fi + fi + if [ -n "$FLAKE8" ]; then - echo ================== FLAKES8 $f | tee -a $REPORT - $FLAKE8 $f 2>&1 | tee -a $REPORT + print ================== FLAKES8 $f | tee -a $DBG_FILE + $FLAKE8 $f 2>&1 | tee -a $DBG_FILE fi if [ -n "$PYFLAKES" ]; then - echo ================== PYFLAKES $f | tee -a $REPORT - $PYFLAKES $f 2>&1 | tee -a $REPORT + print ================== PYFLAKES $f | tee -a $DBG_FILE + $PYFLAKES $f 2>&1 | tee -a $DBG_FILE fi if [ -z "$LINT2" -a -z "$LINT3" ]; then continue fi - if [ $LINT_PYVER -eq 2 ]; then - echo ================== PYLINT2 $f | tee -a $REPORT - $LINT2 $f 2>&1 | grep -v "$using" | tee -a $REPORT - continue - fi - if [ $LINT_PYVER -eq 3 ]; then - echo ================== PYLINT3 $f | tee -a $REPORT - $LINT3 $f 2>&1 | grep -v "$using" | tee -a $REPORT - continue - fi - $LINT3 $f 2>&1 | grep -v "$using" | grep -v $line > $ERR_TEMP - grep -q "$score" $ERR_TEMP >/dev/null - if [ $? -ne 0 ]; then - echo ================== PYLINT3 $f | tee -a $REPORT - echo ================== PYLINT3 $f | tee -a $ERR_FILE - cat $ERR_TEMP | tee -a $REPORT $ERR_FILE - continue + if [ $OPT_LINT_PYVER -eq 3 -o $OPT_LINT_PYVER -eq 0 ]; then + #echo $LINT3 $OPTS $OPTS3 $f + $LINT3 $OPTS $OPTS3 $f 2>&1 | grep -v "$using" | grep -v $line > $ERR_TEMP + lc=$(wc -l < $ERR_TEMP) + grep -q "$score" $ERR_TEMP >/dev/null + if [ $? -ne 0 -a $lc -gt 0 ]; then + print ================== PYLINT3 $f | tee -a $DBG_FILE >/dev/null + print ================== PYLINT3 $f | tee -a $ERR_FILE + cat $ERR_TEMP | tee -a $DBG_FILE $ERR_FILE + print $lc $f | tee -a $REP_FILE + continue + fi fi - $LINT2 $f 2>&1 | grep -v "$using" | grep -v $line > $ERR_TEMP - grep -q "$score" $ERR_TEMP >/dev/null - if [ $? -ne 0 ]; then - echo ================== PYLINT2 $f | tee -a $REPORT - echo ================== PYLINT2 $f | tee -a $ERR_FILE - cat $ERR_TEMP | tee -a $REPORT $ERR_FILE - continue + if [ $OPT_LINT_PYVER -eq 2 -o $OPT_LINT_PYVER -eq 0 ]; then + #echo $LINT2 $OPTS $OPTS2 $f + $LINT2 $OPTS $OPTS2 $f 2>&1 | grep -v "$using" | grep -v $line > $ERR_TEMP + lc=$(wc -l < $ERR_TEMP) + grep -q "$score" $ERR_TEMP >/dev/null + if [ $? -ne 0 -a $lc -gt 0 ]; then + print ================== PYLINT2 $f | tee -a $DBG_FILE >/dev/null + print ================== PYLINT2 $f | tee -a $ERR_FILE + cat $ERR_TEMP | tee -a $DBG_FILE $ERR_FILE + print $lc $f | tee -a $REP_FILE + continue + fi fi - echo ================== PYLINT $f | tee -a $REPORT + print ================== PYLINT $f | tee -a $DBG_FILE done +if [ -f $REP_FILE ]; then + mv $REP_FILE $ERR_TEMP + sort -rnk3 $ERR_TEMP > $REP_FILE + err_count=$(awk -F" " '{x+=$3}END{print x}' $REP_FILE) +fi +print "================ COMPLETED $err_count ==================" >> $DBG_FILE +print "================ COMPLETED $err_count ==================" >> $ERR_FILE diff --git a/spytest/bin/python b/spytest/bin/python index de93f2602c..73023b5a76 100755 --- a/spytest/bin/python +++ b/spytest/bin/python @@ -4,14 +4,22 @@ dir=$(dirname $0) dir=$(cd $dir;pwd -P) ddir=$(cd $dir/..;pwd -P) -# sourde environment +# source environment . $dir/env -if [ "$SPYTEST_PYTHON_VERSION" != "3.6.6" -a "$SPYTEST_PYTHON_VERSION" != "3.7.1" ]; then - PYTHONPATH=$($SPYTEST_PYTHON -c 'import site; print(site.getsitepackages()[0])') +VER=$($SPYTEST_PYTHON --version 2>&1 | cut -d . -f1) +if [ "$VER" != "Python 3" ]; then + PYTHONPATH=$($SPYTEST_PYTHON -c 'import site; print(site.getsitepackages()[0])') fi -export PYTHONPATH=$PYTHONPATH:$ddir + +NEW_PYTHONPATH=$ddir +if [ -n "$SPYLINT_PYTHONPATH" ]; then + NEW_PYTHONPATH=$NEW_PYTHONPATH:$SPYLINT_PYTHONPATH +fi +if [ -n "$PYTHONPATH" ]; then + NEW_PYTHONPATH=$NEW_PYTHONPATH:$PYTHONPATH +fi +export PYTHONPATH=$NEW_PYTHONPATH export PATH=$dir:$PATH exec $SPYTEST_PYTHON "$@" - diff --git a/spytest/bin/python2 b/spytest/bin/python2 new file mode 100755 index 0000000000..2bc28c2c87 --- /dev/null +++ b/spytest/bin/python2 @@ -0,0 +1,4 @@ +#!/bin/sh + +export SPYTEST_PYTHON_VERSION=2.7.14 +exec $(dirname $0)/python "$@" diff --git a/spytest/bin/python3 b/spytest/bin/python3 index db356b709e..42f1eef454 100755 --- a/spytest/bin/python3 +++ b/spytest/bin/python3 @@ -1,5 +1,4 @@ #!/bin/sh -export SPYTEST_PYTHON_VERSION=3.7.1 -export SPYTEST_PYTHON_VERSION=3.6.6 +export SPYTEST_PYTHON_VERSION=3.8.12 exec $(dirname $0)/python "$@" diff --git a/spytest/bin/requirements0.txt b/spytest/bin/requirements0.txt deleted file mode 100644 index 52f7a24259..0000000000 --- a/spytest/bin/requirements0.txt +++ /dev/null @@ -1,24 +0,0 @@ -pyfiglet -pylint==1.8.1 -textfsm -netmiko==2.4.2 -pytest>=4.4.1,<=4.6.5 -pytest-timeout -pytest-xdist==1.28.0 -gitpython -ansible -jinja2 -future>=0.16.0 -psutil -prettytable -tabulate -pycryptodome -cryptography >= 2.5 -natsort -redis -requests -jsonpatch -rpyc -Pyro4 -scapy==2.4.3rc1 -netaddr diff --git a/spytest/bin/requirements1.txt b/spytest/bin/requirements1.txt deleted file mode 100644 index 95028ee64b..0000000000 --- a/spytest/bin/requirements1.txt +++ /dev/null @@ -1,13 +0,0 @@ -pyflakes -flake8 -autoflake -autopep8 -scapy==2.4.3rc1 -sphinx -python-jenkins -jira -pysnmp -pyang -mmh3 -Pyro4 -protobuf diff --git a/spytest/bin/spytest b/spytest/bin/spytest index ccbda289b9..f9d92cbc9e 100755 --- a/spytest/bin/spytest +++ b/spytest/bin/spytest @@ -2,18 +2,18 @@ ''':' export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH -exec $(dirname $0)/python "$0" "$@" +exec $(dirname $0)/python $SPYTEST_PYTHON_ARGS "$0" "$@" ''' -import os, re, sys, warnings - -warnings.filterwarnings(action='ignore', module='.*paramiko.*') +import os, re, sys root = os.path.join(os.path.dirname(__file__), '..') root = os.path.abspath(root) +tests = os.path.join(root, "tests") sys.path.append(os.path.join(root)) sys.path.append(os.path.join(root, "apis")) os.environ["SPYTEST_USER_ROOT"] = os.path.abspath(".") +os.environ["PYTHONDONTWRITEBYTECODE"] = "1" if __name__ == '__main__': arg_list = [] @@ -27,7 +27,9 @@ if __name__ == '__main__': sys.argv.insert(1, "-c") sys.argv.insert(2, os.path.join(root, "spytest", "pytest.ini")) sys.argv.extend(["-p", "spytest.splugin"]) - - os.chdir(os.path.join(root, "tests")) + sys.argv.extend(["-W", "once::DeprecationWarning"]) + sys.argv.extend(["--rootdir", tests]) + + os.chdir(tests) from spytest.main import main sys.exit(main()) diff --git a/spytest/bin/spytest2 b/spytest/bin/spytest2 new file mode 100755 index 0000000000..07923844d6 --- /dev/null +++ b/spytest/bin/spytest2 @@ -0,0 +1,4 @@ +#!/bin/sh + +export SPYTEST_PYTHON_VERSION=2.7.14 +exec $(dirname $0)/spytest "$@" diff --git a/spytest/bin/spytest3 b/spytest/bin/spytest3 index 5dc2c7777e..f2ae764ee2 100755 --- a/spytest/bin/spytest3 +++ b/spytest/bin/spytest3 @@ -1,5 +1,4 @@ #!/bin/sh -export SPYTEST_PYTHON_VERSION=3.6.6 -export SPYTEST_PYTHON_VERSION=3.7.1 +export SPYTEST_PYTHON_VERSION=3.8.12 exec $(dirname $0)/spytest "$@" diff --git a/spytest/bin/tgen_folders.txt b/spytest/bin/tgen_folders.txt index 932f5c5771..afff04363c 100644 --- a/spytest/bin/tgen_folders.txt +++ b/spytest/bin/tgen_folders.txt @@ -11,8 +11,6 @@ /projects/scid/tgen/ixia/8.42/lib/hltapi/library/common/ixiangpf/perl /projects/scid/tgen/ixia/8.42/lib/hltapi/library/common/ixiangpf/python /projects/scid/tgen/ixia/8.42/lib/hltapi/library/common/ixiangpf/python/ixiangpf_commands -/projects/scid/tgen/ixia/8.42/lib/hltapi/library/common/ixiangpf/python/ixiangpf_commands/__pycache__ -/projects/scid/tgen/ixia/8.42/lib/hltapi/library/common/ixiangpf/python/__pycache__ /projects/scid/tgen/ixia/8.42/lib/hltapi/library/common/robot_plugin /projects/scid/tgen/ixia/8.42/lib/hltapi/library/utracker /projects/scid/tgen/ixia/8.42/lib/hltapi/bin @@ -26,7 +24,6 @@ /projects/scid/tgen/ixia/8.42/lib/ixtc /projects/scid/tgen/ixia/8.42/lib/sftp /projects/scid/tgen/ixia/8.42/lib/PythonApi -/projects/scid/tgen/ixia/8.42/lib/PythonApi/__pycache__ /projects/scid/tgen/ixia/8.42/lib/RubyApi /projects/scid/tgen/ixia/8.42/lib/IxTclProtocol /projects/scid/tgen/ixia/8.42/lib/IxTclProtocol/Generic @@ -149,7 +146,6 @@ /projects/scid/tgen/stc/4.91/Spirent_TestCenter_Application_Linux/HltAPI_4.91/SourceCode /projects/scid/tgen/stc/4.91/Spirent_TestCenter_Application_Linux/HltAPI_4.91/SourceCode/hltapiPythonWrapper /projects/scid/tgen/stc/4.91/Spirent_TestCenter_Application_Linux/HltAPI_4.91/SourceCode/hltapiForPython -/projects/scid/tgen/stc/4.91/Spirent_TestCenter_Application_Linux/HltAPI_4.91/SourceCode/hltapiForPython/__pycache__ /projects/scid/tgen/stc/4.91/Spirent_TestCenter_Application_Linux/HltAPI_4.91/SourceCode/sqllibraries /projects/scid/tgen/stc/4.91/Spirent_TestCenter_Application_Linux/HltAPI_4.91/SourceCode/sqllibraries/SunOS /projects/scid/tgen/stc/4.91/Spirent_TestCenter_Application_Linux/HltAPI_4.91/SourceCode/sqllibraries/Linux @@ -800,7 +796,6 @@ /projects/scid/tgen/ixia/all/ixia/hlapi/9.00.1977.39/library/common/ixiangpf/perl /projects/scid/tgen/ixia/all/ixia/hlapi/9.00.1977.39/library/common/ixiangpf/python /projects/scid/tgen/ixia/all/ixia/hlapi/9.00.1977.39/library/common/ixiangpf/python/ixiangpf_commands -/projects/scid/tgen/ixia/all/ixia/hlapi/9.00.1977.39/library/common/ixiangpf/python/ixiangpf_commands/__pycache__ /projects/scid/tgen/ixia/all/ixia/hlapi/9.00.1977.39/library/common/robot_plugin /projects/scid/tgen/ixia/all/ixia/hlapi/9.00.1977.39/library/common/ixia_hl_lib-9.00 /projects/scid/tgen/ixia/all/ixia/hlapi/9.00.1977.39/library/utracker @@ -815,11 +810,24 @@ /projects/scid/tgen/ixia/all/ixia/hlapi/9.10.2007.43/library/common/ixiangpf/perl /projects/scid/tgen/ixia/all/ixia/hlapi/9.10.2007.43/library/common/ixiangpf/python /projects/scid/tgen/ixia/all/ixia/hlapi/9.10.2007.43/library/common/ixiangpf/python/ixiangpf_commands -/projects/scid/tgen/ixia/all/ixia/hlapi/9.10.2007.43/library/common/ixiangpf/python/ixiangpf_commands/__pycache__ /projects/scid/tgen/ixia/all/ixia/hlapi/9.10.2007.43/library/common/robot_plugin /projects/scid/tgen/ixia/all/ixia/hlapi/9.10.2007.43/library/common/ixia_hl_lib-9.10 /projects/scid/tgen/ixia/all/ixia/hlapi/9.10.2007.43/library/utracker /projects/scid/tgen/ixia/all/ixia/hlapi/9.10.2007.43/bin +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8 +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library/dependencies +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library/common +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library/common/ixia_hl_lib-9.31 +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library/common/ixiangpf +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library/common/ixiangpf/tcl +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library/common/ixiangpf/documentation +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library/common/ixiangpf/perl +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library/common/ixiangpf/python +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library/common/ixiangpf/python/ixiangpf_commands +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library/common/robot_plugin +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/library/utracker +/projects/scid/tgen/ixia/all/ixia/hlapi/9.31.2301.8/bin /projects/scid/tgen/ixia/all/ixia/hlapi/8.42.0.6 /projects/scid/tgen/ixia/all/ixia/hlapi/8.42.0.6/library /projects/scid/tgen/ixia/all/ixia/hlapi/8.42.0.6/library/dependencies @@ -846,7 +854,9 @@ /projects/scid/tgen/ixia/all/ixia/ixos-api/9.10.16.6/lib/ixTcl1.0 /projects/scid/tgen/ixia/all/ixia/ixos-api/9.10.16.6/lib/ixTcl1.0/Dap /projects/scid/tgen/ixia/all/ixia/ixos-api/9.10.16.6/lib/ixTcl1.0/Generic +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.10.16.6/Results /projects/scid/tgen/ixia/all/ixia/ixos-api/9.10.16.6/bin +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.10.16.6/Logs /projects/scid/tgen/ixia/all/ixia/ixos-api/9.00.0.20 /projects/scid/tgen/ixia/all/ixia/ixos-api/9.00.0.20/lib /projects/scid/tgen/ixia/all/ixia/ixos-api/9.00.0.20/lib/Scriptgen @@ -858,6 +868,18 @@ /projects/scid/tgen/ixia/all/ixia/ixos-api/9.00.0.20/lib/ixTcl1.0/Dap /projects/scid/tgen/ixia/all/ixia/ixos-api/9.00.0.20/lib/ixTcl1.0/Generic /projects/scid/tgen/ixia/all/ixia/ixos-api/9.00.0.20/bin +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1 +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1/lib +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1/lib/sftp_openssh +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1/lib/Scriptgen +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1/lib/ssh +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1/lib/sftp +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1/lib/ixTclServices +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1/lib/ixTclServices/Generic +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1/lib/ixTcl1.0 +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1/lib/ixTcl1.0/Dap +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1/lib/ixTcl1.0/Generic +/projects/scid/tgen/ixia/all/ixia/ixos-api/9.31.35.1/bin /projects/scid/tgen/ixia/all/ixia/ixos-api/8.42.6.1 /projects/scid/tgen/ixia/all/ixia/ixos-api/8.42.6.1/lib /projects/scid/tgen/ixia/all/ixia/ixos-api/8.42.6.1/lib/Scriptgen @@ -1239,6 +1261,401 @@ /projects/scid/tgen/ixia/all/ixia/ixnetwork/9.00.1919.80/SampleScripts/IxNetwork/NGPF/REST/Multicast /projects/scid/tgen/ixia/all/ixia/ixnetwork/9.00.1919.80/SampleScripts/IxNetwork/NGPF/REST/Statistics /projects/scid/tgen/ixia/all/ixia/ixnetwork/9.00.1919.80/SampleScripts/IxNetwork/NGPF/REST/Interfaces +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/JSON +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/JSON/backportPP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/JSON/PP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/LWP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/LWP/Authen +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/LWP/Debug +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/LWP/Protocol +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/IPv6Sock +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/Try +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/HTTP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/HTTP/Cookies +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/HTTP/Headers +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/HTTP/Request +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/Time +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/Protocol +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/Protocol/WebSocket +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/Protocol/WebSocket/Cookie +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/Protocol/WebSocket/Handshake +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/URI +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/URI/urn +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PerlApi/dependencies/URI/file +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PythonApi +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PythonApi/dependencies +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PythonApi/dependencies/websocket +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PythonApi/dependencies/websocket/tests +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/PythonApi/dependencies/websocket/tests/data +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/RubyApi +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetwork +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetwork/dependencies +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetwork/dependencies/json +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetwork/dependencies/json/c +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetwork/dependencies/json/tests +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetwork/dependencies/sha1 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetwork/dependencies/websocket +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetwork/dependencies/base64 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetwork/dependencies/log +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetwork/dependencies/log/msgs +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetwork/Generic +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxPublisher +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclNetworkConnector +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/ixtc +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclProtocol +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTclProtocol/Generic +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/IxTcl1.0 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/scriptgen-protocols +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/lib/TclApi/scriptgen-protocols/Protocols +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/bin +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/CommonUtils +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/AuthAccess +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/AuthAccess/PPP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/AuthAccess/TWAMP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/AuthAccess/IP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Traffic +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Traffic/QuickStreams +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Traffic/CP-DP Convergence +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Traffic/AdvancedTraffic +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Traffic/FrameRateOnTheFly +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Traffic/PacketEditor +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Traffic/API-TrafficItem +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Traffic/Dscp-Tos +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Traffic/SV-Api +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/SDN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/SDN/OpenFlow +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching/ISIS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching/ISIS/isisMt_5.50 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching/BGP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching/BGP/bgpRouteImport +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching/BGP/bgpAd_5.50 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching/CFM-ITU-PBB-TE +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching/LACP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching/LACP/polacp_5.50 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching/posm_5.50 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching/OSPF +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/RoutingSwitching/rateControl_5.50 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Framework +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Framework/ipv6gateway_5.50 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Framework/InterFace&PortManagement +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Framework/InterFace&PortManagement/Port-Management +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Framework/InterFace&PortManagement/ipv4-ipv6-interfaces +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Framework/AdvAES_5.50 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Framework/ProtocolStats+LearnedInfo +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/MPLS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/MPLS/RSVP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/MPLS/RSVP/rsvpEnh_5.50 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/MPLS/RSVP/RSVP-GR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/MPLS/MVPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/MPLS/MVPN/P2MP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/MPLS/MVPN/mvpnNew_5.50 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/MPLS/LDP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/MPLS/LDP/LDP-PW +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/IntegtatedTest +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/TestRun +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/IxReporter +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/QuickTest +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Multicast +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Multicast/MLD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Multicast/MLD/Mld-Router +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Multicast/IGMP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Multicast/IGMP/Igmp-Router +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Multicast/PIM-BSR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Statistics +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Statistics/generic +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Tcl/Statistics/custom-view +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Perl +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Perl/RoutingSwitching +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Perl/RoutingSwitching/OSPF +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Python +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Python/RoutingSwitching +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Python/RoutingSwitching/OSPF +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Ruby +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Ruby/RoutingSwitching +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/Ruby/RoutingSwitching/OSPF +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/REST +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/REST/IxReporter +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/REST/Statistics +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/Classic/REST/Statistics/custom-view +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/VM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/VM/REST +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/CarrierEthernet +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/CarrierEthernet/CFM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Traffic +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/ISIS-SR-MS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/BGP-EPE +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/ISIS-SRLG-LINK-PROTECTION +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/TWAMP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/BIER +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/NGPF-OpenFlowController +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/BGP-Flowspec +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/Netconf +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/L3vpn-G-SRv6 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/OSPFv3-SRv6 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/OSPF-SR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/FLEXALGO-SRv6 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/BGP-SR-Policy +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/L3vpn-Over-SRv6 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/OVSDB-Controller +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/NGPF-OpenFlowSwitch +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/PCEP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/SRv6-OAM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/BGP-LS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/gRIBI +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/BGP-SR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/SDN/ISIS-SR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/RoutingSwitching +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/RoutingSwitching/BFD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/RoutingSwitching/ISIS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/RoutingSwitching/BGP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/RoutingSwitching/BFDoverVXLAN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/RoutingSwitching/OSPF +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Timing and Synchronization +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS-VPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS-VPN/Inter-AS-option-C +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS-VPN/MPLSOAM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS-VPN/MPLSOAM/S-BFD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS-VPN/NG-MVPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS-VPN/H-L3VPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS-VPN/EVPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Link Aggregation +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Access +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Access/PPP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Access/CUSP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Access/L2TP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Access/IEEE802.1x +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Access/BondedGRE +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Access/TLV +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Access/DHCP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Framework +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS/BGP_RFC3107 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS/RSVP_P2MP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS/RSVP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/MPLS/LDP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/L2 Security +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/AVB +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/AVB/MSRP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/AVB/gPTP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/QuickTest +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Capture +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Multicast +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Multicast/MLD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Multicast/IGMP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Multicast/PIM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Multicast/IPTV +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Statistics +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/DataCenter +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/DataCenter/EVPN-VxLAN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/DataCenter/FabricPath +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/DataCenter/VxLAN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/DataCenter/TRILL +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/DataCenter/VxLANv6 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/Interfaces +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Tcl/ESMC +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/CarrierEthernet +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/CarrierEthernet/CFM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Traffic +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/ISIS-SR-MS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/BGP-EPE +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/ISIS-SRLG-LINK-PROTECTION +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/BIER +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/NGPF-OpenFlowController +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/BGP-Flowspec +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/Netconf +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/NGPF_OpenFlowSwitch +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/OSPF-SR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/BGP-SR-Policy +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/OVSDB-Controller +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/PCEP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/BGP-LS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/gRIBI +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/BGP-SR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/SDN/ISIS-SR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/RoutingSwitching +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/RoutingSwitching/BFD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/RoutingSwitching/ISIS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/RoutingSwitching/BGP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/RoutingSwitching/OSPF +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Timing and Synchronization +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/MPLS-VPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/MPLS-VPN/Inter-AS-option-C +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/MPLS-VPN/NG-MVPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/MPLS-VPN/H-L3VPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/MPLS-VPN/EVPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Link Aggregation +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Access +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Access/PPP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Access/L2TP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Access/IEEE802.1x +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Access/BondedGRE +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Access/TLV +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Access/DHCP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/MPLS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/MPLS/BGP_RFC3107 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/MPLS/RSVP_P2MP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/MPLS/RSVP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/MPLS/LDP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/L2 Security +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/AVB +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/AVB/MSRP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Capture +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Multicast +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Multicast/MLD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Multicast/IGMP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Multicast/PIM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Multicast/IPTV +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Statistics +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/DataCenter +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/DataCenter/EVPN-VxLAN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/DataCenter/FabricPath +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/DataCenter/VxLAN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/DataCenter/TRILL +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/DataCenter/VxLANv6 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/Interfaces +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Perl/ESMC +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/CarrierEthernet +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/CarrierEthernet/CFM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Traffic +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/NGPF-OFSwitch +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/ISIS-SR-MS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/BGP-EPE +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/ISIS-SRLG-LINK-PROTECTION +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/TWAMP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/BIER +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/BGP-Flowspec +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/NGPF-OFController +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/Netconf +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/L3vpn-G-SRv6 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/OSPFv3-SRv6 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/OSPF-SR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/FLEXALGO-SRv6 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/BGP-SR-Policy +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/L3vpn-over-SRv6 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/OVSDB-Controller +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/PCEP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/SRv6-OAM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/BGP-LS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/gRIBI +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/BGP-SR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/SDN/ISIS-SR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/RoutingSwitching +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/RoutingSwitching/BFD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/RoutingSwitching/ISIS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/RoutingSwitching/BGP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/RoutingSwitching/BFDoverVXLAN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/RoutingSwitching/OSPF +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Timing and Synchronization +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS-VPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS-VPN/Inter-AS-option-C +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS-VPN/MPLSOAM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS-VPN/MPLSOAM/S-BFD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS-VPN/NG-MVPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS-VPN/H-L3VPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS-VPN/EVPN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Link Aggregation +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Access +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Access/PPP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Access/ANCP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Access/CUSP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Access/IEEE802.1x +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Access/BondedGRE +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Access/TLV +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Access/DHCP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Framework +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Framework/multivalue +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS/BGP_RFC3107 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS/RSVP_P2MP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS/RSVP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/MPLS/LDP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/L2 Security +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/AVB +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/AVB/MSRP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/AVB/gPTP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Capture +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Multicast +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Multicast/MLD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Multicast/IGMP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Multicast/PIM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Multicast/IPTV +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Statistics +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/DataCenter +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/DataCenter/EVPN-VxLAN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/DataCenter/FabricPath +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/DataCenter/VxLAN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/DataCenter/TRILL +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/DataCenter/VxLANv6 +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/Interfaces +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Python/ESMC +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Traffic +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/SDN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/SDN/OSPF-SR +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/SDN/PCEP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/SDN/BGP-LS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/RoutingSwitching +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/RoutingSwitching/BFD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/RoutingSwitching/ISIS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/RoutingSwitching/BGP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/RoutingSwitching/OSPF +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Link Aggregation +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Access +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Access/PPP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Access/ANCP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Access/TLV +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Access/DHCP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/MPLS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/MPLS/RSVP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/MPLS/LDP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/AVB +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/AVB/MSRP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/AVB/gPTP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Capture +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Multicast +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Multicast/MLD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Multicast/IGMP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Multicast/PIM +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Multicast/IPTV +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Statistics +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/DataCenter +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/DataCenter/FabricPath +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/DataCenter/VxLAN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/DataCenter/TRILL +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/Ruby/Interfaces +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/Traffic +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/SDN +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/SDN/gRIBI +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/RoutingSwitching +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/RoutingSwitching/BFD +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/RoutingSwitching/ISIS +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/RoutingSwitching/BGP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/RoutingSwitching/OSPF +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/Link Aggregation +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/Access +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/Access/DHCP +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/capture +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/Multicast +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/Statistics +/projects/scid/tgen/ixia/all/ixia/ixnetwork/9.31.2302.4/SampleScripts/IxNetwork/NGPF/REST/Interfaces /projects/scid/tgen/ixia/all/ixia/ixnetwork/8.42.1250.2 /projects/scid/tgen/ixia/all/ixia/ixnetwork/8.42.1250.2/lib /projects/scid/tgen/ixia/all/ixia/ixnetwork/8.42.1250.2/lib/IxTclNetwork diff --git a/spytest/bin/tools_install.sh b/spytest/bin/tools_install.sh index f759066f32..00f9586f98 100755 --- a/spytest/bin/tools_install.sh +++ b/spytest/bin/tools_install.sh @@ -1,20 +1,23 @@ #!/bin/bash -set -x +mkdir -p /tmp/$USER +exec &> >(tee /tmp/$USER/tools_install.log) + +#export SCID=/tmp/projects/scid cat << EOF The following files are expected to be present in /project/scid/install ActiveTcl-8.5.19.8519-x86_64-linux-glibc-2.5-403583.tar.gz ActivePython-2.7.14.2717-linux-x86_64-glibc-2.12-404899.tar.gz - ActivePython-3.6.6.3606-linux-x86_64-glibc-2.12.tar.gz - ActivePython-3.7.1.0000-linux-x86_64-glibc-2.12-b2ae37a5.tar.gz + all_ixia.tar.gz + all_stc.tar.gz EOF dir=$(dirname $0) dir=$(cd $dir;pwd -P) scid=$(cd $dir/..;pwd -P) -# source environment +# sourde environment . $dir/env if [ -f $dir/.tools_env ]; then @@ -26,13 +29,15 @@ pushd $SCID/install untar() { - file=$1 + here=$PWD + file=$1;shift + in=$1 if [ ! -f $file ]; then echo "$file not exists" if [ -f $dir/.tools_env ]; then bfile=$(basename $file) if [ -n "$PKG_URL" ]; then - wget -O /tmp/$bfile $PKG_URL/$file /tmp/$bfile + wget -inet4-only -O /tmp/$bfile $PKG_URL/$file /tmp/$bfile elif [ -n "$PKG_SERVER" ]; then sshpass -p $PKG_PASS scp -o StrictHostKeyChecking=no $PKG_USER@$PKG_SERVER:$PKG_ROOT/$file /tmp/$bfile fi @@ -43,7 +48,9 @@ untar() exit 1 fi fi - tar -zxf $file + [ -n "$in" ] && pushd $in + tar -zxf $here/$file + [ -n "$in" ] && popd } install_tcl64_85() @@ -77,139 +84,54 @@ install_python2() popd popd rm -rf ActivePython-2.7.14.2717-linux-x86_64-glibc-2.12-404899 + export SCID_PYTHON_BIN="" + export SPYTEST_PYTHON_VERSION=2.7.14 $dir/upgrade_requirements.sh fi popd } -reinstall_python2() -{ - src="2.7.14" - pushd $SCID/tools/ActivPython - dst=$(readlink current) - rm -rf $src.old - mv $src $src.old - if [ "$dst" = "$src" ]; then - rm current; ln -s $src.old current - fi - popd - install_python2 - pushd $SCID/tools/ActivPython - if [ "$dst" = "$src" ]; then - rm current;ln -s $src current - fi - rm -rf $src.old - popd - $dir/upgrade_requirements.sh -} - -install_python366() -{ - pushd $SCID/install - INSTALL=$SCID/tools/ActivPython/3.6.6; rm -rf $INSTALL - untar ActivePython-3.6.6.3606-linux-x86_64-glibc-2.12.tar.gz - pushd ActivePython-3.6.6.3606-linux-x86_64-glibc-2.12-* - ./install.sh -v -I $INSTALL - pushd $SCID/tools/ActivPython - [ -f 3.6.6/bin/python ] || ln -s python3 3.6.6/bin/python - cp -rf $SCID/tools/ActivTcl/current/lib/tclx8.4/ 3.6.6/lib/ - popd - popd - rm -rf ActivePython-3.6.6.3606-linux-x86_64-glibc-2.12-* - export SPYTEST_PYTHON_VERSION=3.6.6 - $dir/upgrade_requirements.sh - popd -} - -install_python371() +install_python3() { pushd $SCID/install - INSTALL=$SCID/tools/ActivPython/3.7.1; rm -rf $INSTALL - untar ActivePython-3.7.1.0000-linux-x86_64-glibc-2.12-b2ae37a5.tar.gz - pushd ActivePython-3.7.1.0000-linux-x86_64-glibc-2.12-* + INSTALL=$SCID/tools/ActivPython/3.8.8; rm -rf $INSTALL + untar ActivePython-3.8.8.0000-linux-x86_64-glibc-2.17-5222f37a.tar.gz + pushd ActivePython-3.8.8.0000-linux-x86_64-glibc-2.17-* ./install.sh -v -I $INSTALL pushd $SCID/tools/ActivPython - [ -f 3.7.1/bin/python ] || ln -s python3 3.7.1/bin/python - cp -rf $SCID/tools/ActivTcl/current/lib/tclx8.4/ 3.7.1/lib/ + [ -f 3.8.8/bin/python ] || ln -s python3 3.8.8/bin/python + cp -rf $SCID/tools/ActivTcl/current/lib/tclx8.4/ 3.8.8/lib/ popd popd - rm -rf ActivePython-3.7.1.0000-linux-x86_64-glibc-2.12-* - export SPYTEST_PYTHON_VERSION=3.7.1 + rm -rf ActivePython-3.8.8.3606-linux-x86_64-glibc-2.12-* + export SCID_PYTHON_BIN="" + export SPYTEST_PYTHON_VERSION=3.8.8 $dir/upgrade_requirements.sh popd } -install_python3() -{ - install_python366 - #install_python371 -} - -reinstall_python3xx() -{ - src=$1 - pushd $SCID/tools/ActivPython - dst=$(readlink current) - rm -rf $src.old - mv $src $src.old - if [ "$dst" = "$src" ]; then - rm current; ln -s $src.old current - fi - popd - [ src = "3.6.6" ] && install_python366 - [ src = "3.7.1" ] && install_python371 - pushd $SCID/tools/ActivPython - if [ "$dst" = "$src" ]; then - rm current;ln -s $src current - fi - rm -rf $src.old - popd -} - -reinstall_python3() -{ - reinstall_python3xx "3.6.6" - #reinstall_python3xx "3.7.1" -} - -install_ixia_842() -{ - mkdir -p $SCID/tgen/ixia/ - pushd $SCID/tgen/ixia/ - rm -f 8.42 - untar IXIA_8.42EA.tar.gz - ln -s IXIA_8.42EA 8.42 - popd -} - install_ixia_all() { - mkdir -p $SCID/tgen/ixia/ - pushd $SCID/tgen/ixia/ - rm -f all - untar all_ixia.tar.gz + pushd $SCID/install + rm -rf $SCID/tgen/ixia/all + untar all_ixia.tar.gz $SCID/tgen/ixia popd } -install_stc_491() +install_stc_all() { - mkdir -p $SCID/tgen/stc/ - pushd $SCID/tgen/stc/ - untar Spirent_TestCenter_4.91.tar.gz - ln -s Spirent_TestCenter_4.91 4.91 + pushd $SCID/install + rm -rf $SCID/tgen/stc + mkdir $SCID/tgen/stc + untar all_stc.tar.gz $SCID/tgen/stc popd } install_tcl64_85 install_python2 -install_python3 +#install_python3 if [ -f $dir/.tools_env ]; then - #install_ixia_842 install_ixia_all - #install_stc_491 + install_stc_all fi - -#reinstall_python3 -#reinstall_python2 - diff --git a/spytest/bin/ubuntu18_deps.sh b/spytest/bin/ubuntu18_deps.sh index 8bf34a53ed..126b70c1ca 100755 --- a/spytest/bin/ubuntu18_deps.sh +++ b/spytest/bin/ubuntu18_deps.sh @@ -3,3 +3,8 @@ sudo apt install -y python python-pip sudo apt install -y tcl8.5 tclx sudo apt install -y iputils-ping +sudo apt install -y snmp +sudo apt install -y libnet-snmp-perl +sudo apt install -y libcrypt-des-perl +sudo apt install -y libdigest-hmac-perl +sudo apt install -y libcrypt-rijndael-perl diff --git a/spytest/bin/upgrade_requirements.sh b/spytest/bin/upgrade_requirements.sh index 3639a26d6b..6e132a9c0f 100755 --- a/spytest/bin/upgrade_requirements.sh +++ b/spytest/bin/upgrade_requirements.sh @@ -1,22 +1,139 @@ -#!/bin/sh +#!/bin/bash -dir=$(dirname $0) +#bsub -q sj-slx -m lc-lvn-0291 -Is bash -# sourde environment +mkdir -p /tmp/$USER +exec &> >(tee /tmp/$USER/upgrade-$SPYTEST_PYTHON_VERSION-requirements.log) + +dir=$(cd $(dirname $0);pwd -P) + +# source environment . $dir/env -export CC=gcc -export CPP=cpp -export CXX=c++ +export PATH=/tools/bin:$PATH +export GCCVER=5.4.0 +export CC=${PREFIX}gcc +export CPP=${PREFIX}cpp +export CXX=${PREFIX}c++ export LIBS= -export LDSHARED="gcc -pthread -shared" +export LDSHARED="${PREFIX}gcc -pthread -shared" export PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1 -$SPYTEST_PYTHON -m pip install -r $dir/requirements0.txt -#$SPYTEST_PYTHON -m pip install -r $dir/requirements1.txt +TMPFILE=$(mktemp) + +cat << EOF > $TMPFILE.1 +readline +pyfiglet +textfsm +pytest-timeout +gitpython +ansible-core +jinja2 +psutil +prettytable +tabulate +pycryptodome +natsort +redis +requests +jsonpatch +rpyc +Pyro4 +netaddr +# GNMI +crc16 +autoflake +pyang +pyparsing +pyangbind +yapf +#yabgp +pexpect +pytz +docker==2.7.0 +pdbpp +pylint-pytest +pylint-protobuf +ruff +EOF + +cat << EOF > $TMPFILE.2 +pylint>=1.9.5 +paramiko==2.11.0 +netmiko==2.4.2 +pytest>=4.4.1,<=4.6.5 +pytest-xdist==1.28.0 +future>=0.16.0 +cryptography >= 2.5 +scapy==2.4.3rc1 +# GNMI +protobuf>=3.15.6,<=3.20.* +deepdiff==3.3.0 +grpcio>=1.8.3,<=1.20.1 +grpcio-tools>=1.8.3,<=1.20.1 +regex<2022.1.18 +EOF + +cat << EOF > $TMPFILE.3 +pylint>=2.7.2 +netmiko>=3.3.3,<=3.4.0 +pytest<=6.2.5 +pytest-xdist<=2.5.0 +future>=0.16.0 +cryptography >= 2.5 +scapy>=2.4.4 +# GNMI +protobuf>=3.15.6,<=3.20.3 +pyopenssl +deepdiff>=5.5.0 +grpcio>=1.8.3 +grpcio-tools>=1.8.3 +black +pyenchant +sys-prctl +openpyxl +EOF + +$SPYTEST_PYTHON -V 2>&1 | grep "Python 3" +if [ $? -eq 0 ]; then + is_v3=1 +else + is_v3=0 +fi + +if [ $is_v3 -eq 0 ]; then + cat $TMPFILE.1 $TMPFILE.2 > $TMPFILE.0 +else + cat $TMPFILE.1 $TMPFILE.3 > $TMPFILE.0 +fi + +#$SPYTEST_PYTHON -m pip install python-jenkins; exit 0 + +#INSTALL_OPTS="--upgrade --force-reinstall" +#INSTALL_OPTS="$INSTALL_OPTS --verbose" +$SPYTEST_PYTHON -m pip install --upgrade pip +#$SPYTEST_PYTHON -m pip install --upgrade pyopenssl +#$SPYTEST_PYTHON -m pip uninstall -y regex bitarray pyang pyangbind +$SPYTEST_PYTHON -m pip --no-cache-dir install $INSTALL_OPTS wheel +$SPYTEST_PYTHON -m pip --no-cache-dir install $INSTALL_OPTS sqlite3 +$SPYTEST_PYTHON -m pip --no-cache-dir install $INSTALL_OPTS -r $TMPFILE.0 + +if [ $is_v3 -ne 0 ]; then + $SPYTEST_PYTHON -m pip install --upgrade git+https://github.com/sachinholla/pyangbind.git@0.8.1+spytest.20220216#egg=pyangbind + + VERSION=$($SPYTEST_PYTHON -V 2>&1 | cut -d\ -f 2) + VERSION=(${VERSION//./ }) + if [[ ${VERSION[0]} -ge 3 ]] && [[ ${VERSION[1]} -ge 9 ]] ; then + $SPYTEST_PYTHON -m pip uninstall -y pytest pytest-xdist + $SPYTEST_PYTHON -m pip install --no-input pytest-xdist==1.28.0 pytest==5.4.3 + else + $SPYTEST_PYTHON -m pip install --upgrade git+https://github.com/ramakristipatibrcm/pytest-xdist.git@spytest#egg=pytest-xdist + fi +fi + +read -rs -n1 -t30 -p "Press any key or wait to continue ..." if [ -d $SCID_PYTHON_BIN ]; then $SPYTEST_PYTHON -m compileall $SCID_PYTHON_BIN/.. chmod -R go+r $SCID_PYTHON_BIN/.. fi -