go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/crud/nat44_crud.robot (about)

     1  *** Settings ***
     2  Library      OperatingSystem
     3  #Library      RequestsLibrary
     4  #Library      SSHLibrary      timeout=60s
     5  #Library      String
     6  
     7  Resource     ../../variables/${VARIABLES}_variables.robot
     8  
     9  Resource     ../../libraries/all_libs.robot
    10  Resource     ../../libraries/pretty_keywords.robot
    11  
    12  Force Tags        crud     IPv4
    13  Suite Setup       Testsuite Setup
    14  Suite Teardown    Testsuite Teardown
    15  Test Setup        TestSetup
    16  Test Teardown     TestTeardown
    17  
    18  *** Variables ***
    19  ${VARIABLES}=          common
    20  ${ENV}=                common
    21  ${WAIT_TIMEOUT}=         20s
    22  ${SYNC_SLEEP}=           3s
    23  ${IP_1}=                 10.0.1.1
    24  ${IP_2}=                 10.0.1.1
    25  ${IP_3}=                 20.0.1.1
    26  ${IP_4}=                 21.0.1.1
    27  ${LOCAL_PORT_1}=         80
    28  ${EXT_PORT_1}=           8080
    29  ${INTERFACE_NAME_1}=     memif1
    30  ${INTERFACE_NAME_2}=     memif2
    31  ${MEMIF11_MAC}=          1a:00:00:11:11:11
    32  ${MEMIF12_MAC}=          3a:00:00:33:33:33
    33  ${error_message_1}=      Evaluating expression 'json.loads('''None''')' failed: ValueError: No JSON object could be decoded
    34  
    35  
    36  *** Test Cases ***
    37  Configure Environment
    38      [Tags]    setup
    39      Configure Environment 8
    40  
    41  Show NATs Aren't Created Before Setup
    42      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    Run Keyword And Expect Error  ${error_message_1}  Get VPP NAT44 Config As Json    agent_vpp_1    dnat1
    43      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    Run Keyword And Expect Error  ${error_message_1}  Get VPP NAT44 Config As Json    agent_vpp_1    dnat2
    44      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    Run Keyword And Expect Error  ${error_message_1}  Get VPP NAT44 Global Config As Json    agent_vpp_1
    45  
    46  Add VPP1_memif1 And VPP1_memif2 Interface
    47      vpp_term: Interface Not Exists    node=agent_vpp_1    mac=${MEMIF11_MAC}
    48      Put Memif Interface With IP    node=agent_vpp_1    name=memif1    mac=${MEMIF11_MAC}    master=true    id=1    ip=${IP_3}    prefix=24    socket=default.sock
    49      vpp_term: Interface Not Exists    node=agent_vpp_1    mac=${MEMIF12_MAC}
    50      Put Memif Interface With IP    node=agent_vpp_1    name=memif2    mac=${MEMIF12_MAC}    master=true    id=2    ip=${IP_4}    prefix=24    socket=default.sock
    51  
    52  Add NAT1 And Nat Global And Check Are Created
    53      Create DNat On agent_vpp_1 With Name dnat1 Local IP ${IP_1} Local Port ${LOCAL_PORT_1} External IP ${IP_3} External Interface ${INTERFACE_NAME_1} External Port ${EXT_PORT_1} Vrf Id 0
    54      Create Interface GlobalNat On agent_vpp_1 With First IP ${IP_3} On Inteface ${INTERFACE_NAME_1} And Second IP ${IP_4} On Interface ${INTERFACE_NAME_2} Vrf Id 0 Config File nat-global.json
    55      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    Get VPP NAT44 Config As Json    agent_vpp_1    dnat1
    56      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    Get VPP NAT44 Global Config As Json    agent_vpp_1
    57      vpp_term: Check DNAT Global exists    agent_vpp_1    dnat_global_output_match.txt
    58  
    59  Add NAT2 And Check Is Created
    60      Create DNat On agent_vpp_1 With Name dnat2 Local IP ${IP_2} Local Port ${LOCAL_PORT_1} External IP ${IP_4} External Interface ${INTERFACE_NAME_2} External Port ${EXT_PORT_1} Vrf Id 0
    61      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    Get VPP NAT44 Config As Json    agent_vpp_1    dnat1
    62      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    Get VPP NAT44 Config As Json    agent_vpp_1    dnat2
    63      vpp_term: Check DNAT exists    agent_vpp_1    dnat_all_output_match.txt
    64  
    65  Delete NAT1 And Check NAT2 After Delete
    66      Remove DNat On agent_vpp_1 With Name dnat1
    67      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    Run Keyword And Expect Error  ${error_message_1}  Get VPP NAT44 Config As Json  agent_vpp_1  dnat1
    68      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    Get VPP NAT44 Config As Json    agent_vpp_1    dnat2
    69      vpp_term: Check DNAT exists    agent_vpp_1    dnat_output_match.txt
    70  
    71  Rewrite NAT Global And Check
    72      Create Interface GlobalNat On agent_vpp_1 With First IP ${IP_3} On Inteface ${INTERFACE_NAME_1} And Second IP ${IP_4} On Interface ${INTERFACE_NAME_2} Vrf Id 0 Config File nat-global-reduced.json
    73      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    Get VPP NAT44 Global Config As Json    agent_vpp_1
    74  
    75  Delete NAT Global And Check
    76      Remove Global Nat On agent_vpp_1
    77      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    Run Keyword And Expect Error  ${error_message_1}  Get VPP NAT44 Global Config As Json    agent_vpp_1
    78  
    79  *** Keywords ***
    80  TestSetup
    81      Make Datastore Snapshots    ${TEST_NAME}_test_setup
    82  
    83  TestTeardown
    84      Make Datastore Snapshots    ${TEST_NAME}_test_teardown