2 Documentation Kill nodes, delete all data created since boot, change cluster configs,
3 ... start nodes, wait for sync.
5 ... Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
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
12 Library OperatingSystem
14 Resource ${CURDIR}/../../../libraries/ClusterManagement.robot
15 Library ${CURDIR}/../../../libraries/ConfGen.py
18 Suite Setup ClusterManagement.ClusterManagement_Setup
20 Default Tags clustering critical
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
32 [Documentation] Kill every node, download karaf logs.
33 ClusterManagement.Kill_Members_From_List_Or_All
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
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}
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
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
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}
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}
92 ... ${CURDIR}${/}${MODULES_FILE}
93 ... ${WORKSPACE}${/}${BUNDLEFOLDER}${/}configuration${/}initial${/}${MODULES_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}