Update Robot Framework format - step 3
[integration/test.git] / csit / suites / bgpcep / bgpclustering / 005_Cluster_Reset_And_Set_Nonreplicated_Bgp_Rib.robot
1 *** Settings ***
2 Documentation       Kill nodes, delete all data created since boot, change cluster configs,
3 ...                 start nodes, wait for sync.
4 ...
5 ...                 Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
6 ...
7 ...                 This program and the accompanying materials are made available under the
8 ...                 terms of the Eclipse Public License v1.0 which accompanies this distribution,
9 ...                 and is available at http://www.eclipse.org/legal/epl-v10.html
10
11 Library             DateTime
12 Library             OperatingSystem
13 Library             SSHLibrary
14 Resource            ${CURDIR}/../../../libraries/ClusterManagement.robot
15 Library             ${CURDIR}/../../../libraries/ConfGen.py
16 Library             Collections
17
18 Suite Setup         ClusterManagement.ClusterManagement_Setup
19
20 Default Tags        clustering    critical
21
22
23 *** Variables ***
24 ${MODULES_FILE}             modules.conf
25 ${MODULE_SHARDS_FILE}       module-shards.conf
26 ${RIB_SHARD_NAME}           bgp_rib
27 ${RIB_SHARD_NAMESPACE}      urn:opendaylight:params:xml:ns:yang:bgp-rib
28
29
30 *** Test Cases ***
31 Kill_All_Members
32     [Documentation]    Kill every node, download karaf logs.
33     ClusterManagement.Kill_Members_From_List_Or_All
34
35 Store_Karaf_Log_And_Clean_All
36     [Documentation]    Remove various data folders, including ${KARAF_HOME}/data/ on every node.
37     ...    Start each memberand wait for sync.
38     ClusterManagement.Store_Karaf_Log_On_List_Or_All
39     ClusterManagement.Clean_Directories_On_List_Or_All
40     ClusterManagement.Run_Bash_Command_On_List_Or_All    mkdir -p ${KARAF_HOME}/data/log
41     ClusterManagement.Restore_Karaf_Log_On_List_Or_All
42
43 Upload_Initial_Config_Files
44     [Documentation]    Upload config files for non-replicated bgp_rib
45     FOR    ${idx}    IN    @{ClusterManagement__member_index_list}
46         ${idxl}=    BuiltIn.Create_List    ${idx}
47         ClusterManagement.Safe_With_Ssh_To_List_Or_All_Run_Keyword
48         ...    member_index_list=${idxl}
49         ...    keyword_name=Set_Config_Files_With_Nonreplicated_Rib
50         ...    index_list=${idxl}
51     END
52
53 Start_All_And_Sync
54     [Documentation]    Start each memberand wait for sync.
55     ClusterManagement.Start_Members_From_List_Or_All
56     BuiltIn.Comment    Basic synch performed, but waits for specific functionality may still be needed.
57     BuiltIn.Wait_Until_Keyword_Succeeds    2m    5s    Topology_Available
58     ClusterManagement.Run_Bash_Command_On_List_Or_All    ps -ef | grep java
59
60
61 *** Keywords ***
62 Download_Karaf_Log
63     ${timestamp}=    DateTime.Get_Current_Date    time_zone=UTC    result_format=%Y%m%d%H%M%S%f
64     SSHLibrary.Get_File    ${WORKSPACE}${/}${BUNDLEFOLDER}${/}data${/}log${/}karaf.log    karaf_${timestamp}.log
65
66 Topology_Available
67     ${session}=    ClusterManagement.Resolve_Http_Session_For_Member    1
68     TemplatedRequests.Get_As_Json_From_Uri
69     ...    /restconf/operational/network-topology:network-topology/topology/example-ipv4-topology
70     ...    session=${session}
71
72 Set_Config_Files_With_Nonreplicated_Rib
73     [Arguments]    ${index_list}
74     ${modules_file}=    SSHLibrary.Execute_Command
75     ...    ls ${WORKSPACE}${/}${BUNDLEFOLDER}${/}system${/}org${/}opendaylight${/}controller${/}sal-clustering-config${/}*${/}*-moduleconf.xml
76     ${module_shards_file}=    SSHLibrary.Execute_Command
77     ...    ls ${WORKSPACE}${/}${BUNDLEFOLDER}${/}system${/}org${/}opendaylight${/}controller${/}sal-clustering-config${/}*${/}*-moduleshardconf.xml
78     SSHLibrary.Get File    ${modules_file}    ${CURDIR}${/}${MODULES_FILE}.tmpl
79     SSHLibrary.Get File    ${module_shards_file}    ${CURDIR}${/}${MODULE_SHARDS_FILE}.tmpl
80     ${modules_content}=    ConfGen.Generate_Modules
81     ...    ${CURDIR}${/}${MODULES_FILE}.tmpl
82     ...    name=${RIB_SHARD_NAME}
83     ...    namespace=${RIB_SHARD_NAMESPACE}
84     ${ms_content}=    ConfGen.Generate_Module_Shards
85     ...    ${CURDIR}${/}${MODULE_SHARDS_FILE}.tmpl
86     ...    nodes=${NUM_ODL_SYSTEM}
87     ...    shard_name=${RIB_SHARD_NAME}
88     ...    replicas=${index_list}
89     OperatingSystem.Create File    ${CURDIR}${/}${MODULES_FILE}    ${modules_content}
90     OperatingSystem.Create File    ${CURDIR}${/}${MODULE_SHARDS_FILE}    ${ms_content}
91     SSHLibrary.Put File
92     ...    ${CURDIR}${/}${MODULES_FILE}
93     ...    ${WORKSPACE}${/}${BUNDLEFOLDER}${/}configuration${/}initial${/}${MODULES_FILE}
94     SSHLibrary.Put File
95     ...    ${CURDIR}${/}${MODULE_SHARDS_FILE}
96     ...    ${WORKSPACE}${/}${BUNDLEFOLDER}${/}configuration${/}initial${/}${MODULE_SHARDS_FILE}
97     ${stdout}    ${stderr}=    SSHLibrary.Execute_Command
98     ...    cat ${WORKSPACE}${/}${BUNDLEFOLDER}${/}configuration${/}initial${/}${MODULES_FILE}
99     ...    return_stderr=True
100     BuiltIn.Log    ${stdout}
101     BuiltIn.Should_Be_Empty    ${stderr}
102     ${stdout}    ${stderr}=    SSHLibrary.Execute_Command
103     ...    cat ${WORKSPACE}${/}${BUNDLEFOLDER}${/}configuration${/}initial${/}${MODULE_SHARDS_FILE}
104     ...    return_stderr=True
105     BuiltIn.Log    ${stdout}
106     BuiltIn.Should_Be_Empty    ${stderr}