trello 334 - Resource created, 050_bmp_basic.robot suite changed
[integration/test.git] / csit / suites / bgpcep / bgpfunct / 050_bmp_basic.robot
1 *** Settings ***
2 Documentation     Basic tests for odl-bgpcep-bmp feature
3 ...
4 ...               Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
5 ...
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
9 ...
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
15 ...               routers.
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.
19 Suite Setup       Set_It_Up
20 Suite Teardown    Tear_It_Down
21 Library           SSHLibrary
22 Library           RequestsLibrary
23 Resource          ${CURDIR}/../../../libraries/CompareStream.robot
24 Resource          ${CURDIR}/../../../libraries/NexusKeywords.robot
25 Resource          ${CURDIR}/../../../libraries/Utils.robot
26 Resource          ${CURDIR}/../../../libraries/TemplatedRequests.robot
27
28
29 *** Variables ***
30 ${CONFIG_SESSION}    config-session
31 ${BGP_BMP_DIR}    ${CURDIR}/../../../variables/bgpfunctional/bmp_basic
32 ${BMP_LOG_FILE}    bmpmock.log
33
34 *** Test Cases ***
35 Start_Bmp_Mock
36     [Documentation]    Starts bmp-mock on tools vm
37     ${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}
38     BuiltIn.Log    ${command}
39     SSHLibrary.Set_Client_Configuration    timeout=30s
40     SSHLibrary.Write    ${command}
41     ${until_phrase}=    CompareStream.Set_Variable_If_At_Least_Boron       successfully established.    sucesfully established.
42     SSHLibrary.Read_Until    ${until_phrase}
43
44
45 Verify Data Reported
46     [Documentation]    Verifies if the tool reported expected data
47     &{mapping}    BuiltIn.Create_Dictionary    TOOL_IP=${TOOLS_SYSTEM_IP}
48     BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    TemplatedRequests.Get_As_Json_Templated    folder=${BGP_BMP_DIR}    mapping=${mapping}    session=${CONFIG_SESSION}
49     ...    verify=True
50
51 Stop_Bmp_Mock
52     [Documentation]    Send ctrl+c to bmp-mock to stop it
53     Utils.Write_Bare_Ctrl_C
54     ${output}=    SSHLibrary.Read_Until_Prompt
55     BuiltIn.Log    ${output}
56
57 *** Keywords ***
58 Set_It_Up
59     [Documentation]    Create SSH session to ToolsVm, prepare HTTP client session to Controller.
60     ...    Figure out latest pcc-mock version and download it from Nexus to ToolsVm.
61     NexusKeywords.Initialize_Artifact_Deployment_And_Usage
62     RequestsLibrary.Create_Session    ${CONFIG_SESSION}    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}
63     ${name}=    NexusKeywords.Deploy_Test_Tool    bgpcep    bgp-bmp-mock
64     BuiltIn.Set_Suite_Variable    ${filename}    ${name}
65
66 Tear_It_Down
67     [Documentation]    Download pccmock.log and Log its contents.
68     ...    Compute and Log the diff between expected and actual normalized responses.
69     ...    Close both HTTP client session and SSH connection to Mininet.
70     SSHLibrary.Get_File    ${BMP_LOG_FILE}
71     ${cnt}=    OperatingSystem.Get_File    ${BMP_LOG_FILE}
72     Log    ${cnt}
73     Delete_All_Sessions
74     Close_All_Connections