2 Documentation Basic tests for odl-bgpcep-bmp feature
4 ... Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
6 ... This program and the accompanying materials are made available under the
7 ... terms of the Eclipse Public License v1.0 which accompanies this distribution,
8 ... and is available at http://www.eclipse.org/legal/epl-v10.html
10 ... This is a basic suite for bgp monitoring protocol feature.
11 ... After the feature odl-bgpcep-bmp installation the port 12345 should be
12 ... bound for listening,
13 ... To test this feature bgp-bmp-mock tool is used. It is a part of the
14 ... bgpcep project. It is a java tool which simulates more peers and more
16 ... In this particular test suite it simulates 1 peer with 1 router, which
17 ... means it advertizes one peer ipv4 address towards odl. As a result one
18 ... route should appear in the restconf/operational/bmp-monitor:bmp-monitor.
20 Suite Teardown Tear_It_Down
22 Library RequestsLibrary
23 Resource ${CURDIR}/../../../libraries/CompareStream.robot
24 Resource ${CURDIR}/../../../libraries/NexusKeywords.robot
25 Resource ${CURDIR}/../../../libraries/RemoteBash.robot
26 Resource ${CURDIR}/../../../libraries/TemplatedRequests.robot
29 ${CONFIG_SESSION} config-session
30 ${BGP_BMP_DIR} ${CURDIR}/../../../variables/bgpfunctional/bmp_basic/filled_structure
31 ${BGP_BMP_FEAT_DIR} ${CURDIR}/../../../variables/bgpfunctional/bmp_basic/empty_structure
32 ${BMP_LOG_FILE} bmpmock.log
36 [Documentation] Verifies if feature is up
37 &{mapping} BuiltIn.Create_Dictionary TOOL_IP=${TOOLS_SYSTEM_IP}
38 BuiltIn.Wait_Until_Keyword_Succeeds 6x 10s TemplatedRequests.Get_As_Json_Templated folder=${BGP_BMP_FEAT_DIR} mapping=${mapping} session=${CONFIG_SESSION}
42 [Documentation] Starts bmp-mock on tools vm
43 ${command}= NexusKeywords.Compose_Full_Java_Command -jar ${filename} --local_address ${TOOLS_SYSTEM_IP} --remote_address ${ODL_SYSTEM_IP}:12345 --routers_count 1 --peers_count 1 --log_level DEBUG 2>&1 | tee ${BMP_LOG_FILE}
44 BuiltIn.Log ${command}
45 SSHLibrary.Set_Client_Configuration timeout=30s
46 SSHLibrary.Write ${command}
47 ${until_phrase}= Set Variable successfully established.
48 SSHLibrary.Read_Until ${until_phrase}
51 [Documentation] Verifies if the tool reported expected data
52 &{mapping} BuiltIn.Create_Dictionary TOOL_IP=${TOOLS_SYSTEM_IP}
53 BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated folder=${BGP_BMP_DIR} mapping=${mapping} session=${CONFIG_SESSION}
57 [Documentation] Send ctrl+c to bmp-mock to stop it
58 RemoteBash.Write_Bare_Ctrl_C
59 ${output}= SSHLibrary.Read_Until_Prompt
64 [Documentation] Create SSH session to ToolsVm, prepare HTTP client session to Controller.
65 ... Figure out latest pcc-mock version and download it from Nexus to ToolsVm.
66 NexusKeywords.Initialize_Artifact_Deployment_And_Usage
67 RequestsLibrary.Create_Session ${CONFIG_SESSION} http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH}
68 ${name}= NexusKeywords.Deploy_Test_Tool bgpcep bgp-bmp-mock
69 BuiltIn.Set_Suite_Variable ${filename} ${name}
72 [Documentation] Download bmpmock.log and Log its contents.
73 ... Compute and Log the diff between expected and actual normalized responses.
74 ... Close both HTTP client session and SSH connection to Mininet.
75 SSHLibrary.Get_File ${BMP_LOG_FILE}
76 ${cnt}= OperatingSystem.Get_File ${BMP_LOG_FILE}