go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/libraries/acl/acl_etcd.robot (about)

     1  [Documentation]     ACL-related keywords for working with ETCD
     2  
     3  *** Settings ***
     4  Library        String
     5  
     6  Library        ../etcdctl.py
     7  Library        ../vpp_term.py
     8  
     9  Resource       ../etcdctl.robot
    10  
    11  *** Variables ***
    12  
    13  *** Keywords ***
    14  
    15  Check ACL Reply
    16      [Arguments]         ${node}    ${acl_name}   ${reply_json}    ${reply_term}    ${api_h}=$(API_HANDLER}
    17      [Documentation]     Get ACL data from VAT terminal and verify response against expected data.
    18      ${acl_d}=           Get ACL As Json    ${node}    ${acl_name}
    19      ${term_d}=          vpp_term: Check ACL     ${node}    ${acl_name}
    20      ${data}=            OperatingSystem.Get File    ${reply_json}
    21      ${data}=            Replace Variables      ${data}
    22      Should Be Equal     ${data}   ${acl_d}
    23      ${data}=            OperatingSystem.Get File    ${reply_term}
    24      ${data}=            Replace Variables      ${data}
    25      Should be Equal     ${term_d}    ${data}
    26  
    27  Check ACL in ETCD - TCP
    28      [Arguments]    ${node}    ${acl_name}    ${egr_intf1}   ${ingr_intf1}
    29      ...    ${acl_action}    ${dest_ntw}    ${src_ntw}    ${dest_port_low}
    30      ...    ${dest_port_up}    ${src_port_low}    ${src_port_up}
    31      ...    ${tcp_flags_mask}    ${tcp_flags_value}
    32      [Documentation]
    33      ...    Get ACL data from ETCD
    34      ...    and verify response against expected data.
    35      ${acl_d}=           Get ACL As Json    ${node}    ${acl_name}
    36      ${data}=            OperatingSystem.Get File      ${CURDIR}/../../resources/acl/acl_TCP.json
    37      ${data}=            Replace Variables             ${data}
    38      ${data}=            Strip String    ${data}
    39      ${acl_d}=           Strip String    ${data}
    40      Should Be Equal As Strings     ${data}   ${acl_d}
    41  
    42  Check ACL in ETCD - UDP
    43      [Arguments]    ${node}    ${acl_name}
    44      ...    ${egr_intf1}   ${ingr_intf1}    ${egr_intf2}   ${ingr_intf2}
    45      ...    ${acl_action}    ${dest_ntw}    ${src_ntw}    ${dest_port_low}
    46      ...    ${dest_port_up}    ${src_port_low}    ${src_port_up}
    47      [Documentation]
    48      ...    Get ACL data from ETCD
    49      ...    and verify response against expected data.
    50      ${acl_d}=           Get ACL As Json    ${node}    ${acl_name}
    51      ${data}=            OperatingSystem.Get File      ${CURDIR}/../../resources/acl/acl_UDP.json
    52      ${data}=            Replace Variables             ${data}
    53      ${data}=            Strip String    ${data}
    54      ${acl_d}=           Strip String    ${data}
    55      Should Be Equal As Strings     ${data}   ${acl_d}
    56  
    57  Check ACL in ETCD - ICMP
    58      [Arguments]    ${node}    ${acl_name}    ${egr_intf1}   ${ingr_intf1}
    59      ...    ${acl_action}    ${dest_ntw}    ${src_ntw}
    60      ...    ${icmpv6}   ${code_range_low}   ${code_range_up}    ${type_range_low}   ${type_range_up}
    61      [Documentation]
    62      ...    Get ACL data from ETCD
    63      ...    and verify response against expected data.
    64      ${acl_d}=           Get ACL As Json    ${node}    ${acl_name}
    65      ${data}=            OperatingSystem.Get File      ${CURDIR}/../../resources/acl/acl_ICMP.json
    66      ${data}=            Replace Variables             ${data}
    67      ${data}=            Strip String    ${data}
    68      ${acl_d}=           Strip String    ${data}
    69      Should Be Equal As Strings     ${data}   ${acl_d}
    70  
    71  Put ACL TCP
    72      [Arguments]    ${node}    ${acl_name}    ${egr_intf1}   ${ingr_intf1}
    73      ...    ${acl_action}    ${dest_ntw}    ${src_ntw}    ${dest_port_low}
    74      ...    ${dest_port_up}    ${src_port_low}    ${src_port_up}
    75      ...    ${tcp_flags_mask}    ${tcp_flags_value}
    76      ${data}=              OperatingSystem.Get File      ${CURDIR}/../../resources/acl/acl_TCP.json
    77      ${uri}=               Set Variable          /vnf-agent/${node}/config/vpp/acls/${AGENT_VER}/acl/${acl_name}
    78      ${data}=              Replace Variables             ${data}
    79      #OperatingSystem.Create File   ${REPLY_DATA_FOLDER}/reply.json     ${data}
    80      Put Json     ${uri}    ${data}
    81  
    82  Put ACL UDP
    83      [Arguments]    ${node}    ${acl_name}    ${egr_intf1}    ${ingr_intf1}     ${egr_intf2}    ${ingr_intf2}     ${acl_action}    ${dest_ntw}   ${src_ntw}    ${dest_port_low}   ${dest_port_up}    ${src_port_low}    ${src_port_up}
    84      ${data}=              OperatingSystem.Get File      ${CURDIR}/../../resources/acl/acl_UDP.json
    85      ${uri}=               Set Variable          /vnf-agent/${node}/config/vpp/acls/${AGENT_VER}/acl/${acl_name}
    86      ${data}=              Replace Variables             ${data}
    87      #OperatingSystem.Create File   ${REPLY_DATA_FOLDER}/reply.json     ${data}
    88      Put Json     ${uri}    ${data}
    89  
    90  Put ACL MACIP
    91      [Arguments]    ${node}    ${acl_name}    ${egr_intf1}    ${ingr_intf1}    ${acl_action}    ${src_addr}    ${src_addr_prefix}    ${src_mac_addr}   ${src_mac_addr_mask}
    92      ${data}=              OperatingSystem.Get File      ${CURDIR}/../../resources/acl/acl_MACIP.json
    93      ${uri}=               Set Variable          /vnf-agent/${node}/config/vpp/acls/${AGENT_VER}/acl/${acl_name}
    94      ${data}=              Replace Variables             ${data}
    95      #OperatingSystem.Create File   ${REPLY_DATA_FOLDER}/reply.json     ${data}
    96      Put Json     ${uri}    ${data}
    97  
    98  Put ACL ICMP
    99      [Arguments]    ${node}    ${acl_name}    ${egr_intf1}   ${ingr_intf1}    ${acl_action}   ${dest_ntw}    ${src_ntw}    ${icmpv6}   ${code_range_low}   ${code_range_up}    ${type_range_low}   ${type_range_up}
   100      ${data}=              OperatingSystem.Get File      ${CURDIR}/../../resources/acl/acl_ICMP.json
   101      ${uri}=               Set Variable          /vnf-agent/${node}/config/vpp/acls/${AGENT_VER}/acl/${acl_name}
   102      ${data}=              Replace Variables             ${data}
   103      #OperatingSystem.Create File   ${REPLY_DATA_FOLDER}/reply.json     ${data}
   104      Put Json     ${uri}    ${data}
   105  
   106  Get ACL As Json
   107      [Arguments]           ${node}  ${acl_name}
   108      ${key}=               Set Variable          /vnf-agent/${node}/config/vpp/acls/${AGENT_VER}/acl/${acl_name}
   109      ${data}=              Read Key    ${key}
   110      ${data}=              Set Variable If      '''${data}'''=="" or '''${data}'''=='None'    {}    ${data}
   111      [Return]              ${data}
   112  
   113  Get All ACL As Json
   114      [Arguments]           ${node}
   115      ${key}=               Set Variable          /vnf-agent/${node}/config/vpp/acls/${AGENT_VER}/acl
   116      #${data}=              etcd: Get ETCD Tree    ${key}
   117      ${data}=              Read Key    ${key}    true
   118      ${data}=              Set Variable If      '''${data}'''=="" or '''${data}'''=='None'    {}    ${data}
   119      [Return]              ${data}
   120  
   121  Delete ACL
   122      [Arguments]    ${node}    ${name}
   123      ${uri}=      Set Variable    /vnf-agent/${node}/config/vpp/acls/${AGENT_VER}/acl/${name}
   124      ${out}=      Delete key    ${uri}
   125      [Return]    ${out}