Add explicit leader movement longevity suite
[integration/test.git] / csit / suites / controller / dom_data_broker / explicit_leader_movement_longevity.robot
1 *** Settings ***
2 Documentation     DOMDataBroker testing: Explicit Leader Movement
3 ...
4 ...               Copyright (c) 2017 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 ...               The goal is to ensure that applications do not observe disruption when a shard
11 ...               leader is moved as the result of explicit application request. This is performed
12 ...               by having a steady-stream producer execute operations against the shard and then
13 ...               initiate shard leader shutdown, then the producer is shut down cleanly.
14 Suite Setup       SetupUtils.Setup_Utils_For_Setup_And_Teardown
15 Suite Teardown    SSHLibrary.Close_All_Connections
16 Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
17 Test Teardown     SetupUtils.Teardown_Test_Show_Bugs_If_Test_Failed
18 Default Tags      critical
19 Library           SSHLibrary
20 Resource          ${CURDIR}/../../../libraries/controller/DdbCommons.robot
21 Resource          ${CURDIR}/../../../libraries/SetupUtils.robot
22
23 *** Variables ***
24 ${DURATION_24_HOURS_IN_SECONDS}    86400
25 @{MOVEMENT_DIRECTION_LIST}    remote    local    remote
26
27 *** Test Cases ***
28 Explicit_Leader_Movement_Test
29     [Documentation]    Leader move for 24 hours from one node to another
30     WaitForFailure.Verify_Keyword_Does_Not_Fail_Within_Timeout    ${DURATION_24_HOURS_IN_SECONDS}    5s    Test_Scenario
31
32 *** Keywords ***
33 Test_Scenario
34     [Documentation]    One leader movement scenario based on randomly chosen direction.
35     ${node_from}    ${node_to}    BuiltIn.Evaluate    random.sample(${MOVEMENT_DIRECTION_LIST}, 2)    modules=random
36     DdbCommons.Explicit_Leader_Movement_Test_Templ    ${node_from}    ${node_to}