diff --git a/status/fodtest_netconf_get b/status/fodtest_netconf_get new file mode 100755 index 0000000000000000000000000000000000000000..9b0c89bb08e1f719c9e596225f219ebcbfe56af7 --- /dev/null +++ b/status/fodtest_netconf_get @@ -0,0 +1,115 @@ +#!/bin/bash + +use_netconf_settings=0 +old_version=0 +parsed=0 + +while [ $# -gt 0 ]; do + + if [ "$1" = "--raw" ]; then + shift 1 + parsed=0 + elif [ "$1" = "--parsed" ]; then + shift 1 + parsed=1 + elif [ "$1" = "--old_version" ]; then + shift 1 + old_version=1 + elif [ "$1" = "--use_netconf_settings" ]; then + shift 1 + use_netconf_settings=1 + else + break + fi + +done + +# + +NETCONF_DEVICE="$1" +shift 1 +NETCONF_PORT="$1" +shift 1 +NETCONF_USER="$1" +shift 1 +NETCONF_PASS="$1" +shift 1 + +## + +[ -n "$NETCONF_DEVICE" ] || NETCONF_DEVICE="127.0.0.1" +[ -n "$NETCONF_PORT" ] || NETCONF_PORT="830" +[ -n "$NETCONF_USER" ] || NETCONF_USER="netconf" +[ -n "$NETCONF_PASS" ] || NETCONF_PASS="netconf" + +echo "$0: using NETCONF_DEVICE='$NETCONF_DEVICE' NETCONF_PORT='$NETCONF_PORT' NETCONF_USER='$NETCONF_USER' NETCONF_PASS='$NETCONF_PASS'" 1>&2 + +## + +unset SSH_AUTH_SOCK + +## + +. ./venv/bin/activate + +## + +#exec env DJANGO_SETTINGS_MODULE="flowspy.settings" python -c $'\nfrom utils.proxy import *; \nproxy = Applier(); import logging; logger = logging.getLogger("ncclient.transport.ssh").setLevel(logging.DEBUG); logger = logging.getLogger("ncclient.operations.rpc").setLevel(logging.DEBUG); \nxml = proxy.get_existing_config_xml();\nprint(xml);\n' + +## + +export DJANGO_SETTINGS_MODULE="flowspy.settings" + +exec python <<EOF + +# enable debugging in ncclient library +import logging; +logger = logging.getLogger("ncclient.transport.ssh").setLevel(logging.DEBUG); +logger = logging.getLogger("ncclient.operations.rpc").setLevel(logging.DEBUG); + +### + +from django.conf import settings; + +# override flowspy settings to enable debugging +settings.LEVEL = logging.DEBUG; # override flowspy/settings.py +settings.LOG_FILE_LOCATION = "." # + +# override flowspy NETCONF parameters with local values +# check further NETCONF_* variables in flowspec/settings.py, if needed + +if not $use_netconf_settings: + settings.NETCONF_DEVICE = '$NETCONF_DEVICE'; # override flowspy/settings.py + settings.NETCONF_PORT = '$NETCONF_PORT'; # override flowspy/settings.py + settings.NETCONF_USER = '$NETCONF_USER'; # override flowspy/settings.py + settings.NETCONF_PASS = '$NETCONF_PASS'; # override flowspy/settings.py + +# for testing with freertr for now +settings.NETCONF__TESTWISE_TRY_TO_FETCH_WITHOUT_FILTER = 1; # override flowspy/settings.py + +### + +# actually perform NETCONF get-config query and print result +from utils.proxy import *; + +if $old_version: + if $parsed: + retriever = Retriever(); + device = retriever.fetch_device(); + result = device.routing_options[0].routes + print(result); + else: + applier = Applier(); + result = applier.get_existing_config_xml(); + print(result); +else: + retriever = PR0.Retriever(); + if $parsed: + result = retriever.retrieve_current_routes(); + print(result); + else: + result = retriever.fetch_raw(); + print(result); + +EOF +