mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 03:07:56 +00:00
134 lines
4.6 KiB
Python
Executable File
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()
|
|
#
|