Files
wlan-lanforge-scripts/py-scripts/sandbox/jbr_create_wanlink.py

134 lines
4.6 KiB
Python
Executable File

#!/usr/bin/env python3
"""
NAME: jbr_create_wanlink.py
PURPOSE: create a wanlink
EXAMPLE:
$ ./jbr_create_wanlink.py --host ct521a-jana --wl_name snail
To enable using lf_json_autogen in other parts of the codebase, set LF_USE_AUTOGEN=1:
$ LF_USE_AUTOGEN=1 ./jbr_jag_test.py --test set_port --host ct521a-lion
NOTES:
TO DO NOTES:
"""
import sys
if sys.version_info[0] != 3:
print("This script requires Python3")
exit()
import importlib
import argparse
import pprint
sys.path.insert(1, "../../")
lanforge_api = importlib.import_module("lanforge_client.lanforge_api")
from lanforge_client.lanforge_api import LFSession
from lanforge_client.lanforge_api import LFJsonCommand
from lanforge_client.lanforge_api import LFJsonQuery
# import LANforge.lfcli_base
# from LANforge.lfcli_base import LFCliBase
# ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- #
# ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- #
def main():
parser = argparse.ArgumentParser(
prog=__file__,
formatter_class=argparse.RawTextHelpFormatter,
description='tests creating wanlink')
parser.add_argument("--host", "--mgr", help='specify the GUI to connect to, assumes port 8080')
parser.add_argument("--wl_name", help='name of the wanlink to create')
parser.add_argument("--resource", help='LANforge resource')
parser.add_argument("--debug", help='turn on debugging', action="store_true")
args = parser.parse_args()
if not args.wl_name:
print("No wanlink name provided")
exit(1)
session = LFSession(lfclient_url="http://%s:8080" % args.host,
debug=args.debug,
connection_timeout_sec=2.0,
stream_errors=True,
stream_warnings=True,
require_session=True,
exit_on_error=True)
command: LFJsonCommand
command = session.get_command()
query: LFJsonQuery
query = session.get_query()
command.post_add_rdd(resource=args.resource,
port="rd0a",
peer_ifname="rd0b",
report_timer=1000,
shelf=1,
debug=args.debug)
command.post_add_rdd(resource=args.resource,
port="rd1a",
peer_ifname="rd1b",
report_timer=1000,
shelf=1,
debug=args.debug)
endp_a = args.wl_name + "-A"
endp_b = args.wl_name + "-B"
# Comment out some parameters like 'max_jitter', 'drop_freq' and 'wanlink'
# in order to view the X-Errors headers
command.post_add_wl_endp(alias=endp_a,
shelf=1,
resource=args.resource,
wanlink=args.wl_name,
speed=56000,
port="rd0a",
drop_freq="0",
max_jitter="10",
latency="10ms",
min_reorder_amt="1",
max_reorder_amt="10",
min_drop_amt="1",
debug=args.debug)
command.post_add_wl_endp(alias=endp_b,
shelf=1,
resource=args.resource,
port="rd1a",
wanlink=args.wl_name,
speed=56000,
drop_freq="0",
max_jitter="10",
latency="10ms",
min_reorder_amt="1",
max_reorder_amt="10",
min_drop_amt="1",
debug=args.debug)
command.post_add_cx(alias=args.wl_name,
rx_endp=endp_a,
tx_endp=endp_b,
test_mgr="default_tm",
debug=args.debug)
ewarn_list = []
result = query.get_wl(eid_list=[args.wl_name],
wait_sec=0.2,
timeout_sec=2.0,
errors_warnings=ewarn_list,
debug=args.debug)
pprint.pprint(result)
result = query.get_wl_endp(eid_list=[args.wl_name+"-A", args.wl_name+"-B"],
wait_sec=0.2,
timeout_sec=15.0,
debug=args.debug)
pprint.pprint(result)
if __name__ == "__main__":
main()
#