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

     1  *** Settings ***
     2  
     3  Library      OperatingSystem
     4  Library      String
     5  
     6  Resource     ../../../variables/${VARIABLES}_variables.robot
     7  
     8  Resource     ../../../libraries/all_libs.robot
     9  
    10  Suite Setup       Setup
    11  Suite Teardown    Testsuite Teardown
    12  
    13  *** Variables ***
    14  ${VARIABLES}=          common
    15  ${ENV}=                common
    16  
    17  *** Test Cases ***
    18  List All Loggers
    19      Get All Loggers on agent_vpp_1
    20  
    21  Change Logger Level
    22      #Change Log Level On agent_vpp_1 From debug To info On defaultLogger
    23      Change Log Level On agent_vpp_1 From debug To info On vpp-plugin
    24      Change Log Level On agent_vpp_1 From debug To info On vpp-plugin-if-conf
    25      ${from_now}=  Get Time     epoch
    26      Put Loopback Interface With IP    agent_vpp_1    loop0   8a:f1:be:90:00:03    10.1.1.1
    27      Sleep     5
    28      ${out}=      Write To Machine    docker     docker logs --since ${from_now} agent_vpp_1
    29      Should Not Contain     ${out}    level=debug msg="Start processing change for key: vpp/config/${AGENT_VER}/interface/loop0"
    30      Should Not Contain     ${out}    level=debug msg="MAC address added" MAC address="8a:f1:be:90:00:03"
    31      Should Not Contain     ${out}    level=debug msg="IP address added." IPAddress=10.1.1.1
    32  
    33  Check If Agent Is Live
    34      Agent liveness Should Be OK On agent_vpp_1
    35  
    36  Check If Agent Is Ready
    37      Agent readiness Should Be OK On agent_vpp_1
    38  
    39  Check Agent State Data In ETCD
    40      Get Agent Status For agent_vpp_1 From ETCD Should be OK
    41  
    42  Check Plugins State Data In ETCD
    43      Get govpp Plugin Status For agent_vpp_1 From ETCD
    44  
    45  
    46  Change API Port
    47      [Teardown]    Teardown
    48      Change API Port From 9191 To 8888 On agent_vpp_1
    49  
    50  *** Keywords ***
    51  Setup
    52      Testsuite Setup
    53      Add Agent VPP Node    agent_vpp_1
    54  
    55  Teardown
    56      Remove Node    agent_vpp_1
    57  
    58  Get All Loggers On ${node}
    59      ${out}=     rest_api: Get Loggers List    agent_vpp_1
    60       Should Contain     ${out}    etcd
    61       Should Contain     ${out}    govpp
    62       Should Contain     ${out}    http
    63       Should Contain     ${out}    health-rpc
    64       Should Contain     ${out}    status-check
    65       Should Contain     ${out}    kafka
    66       Should Contain     ${out}    redis
    67       Should Contain     ${out}    cassandra
    68  
    69  Change Log Level On ${node} From ${old_level} To ${expected_level} On ${logger_name}
    70      ${out}=      rest_api: Get Loggers List   ${node}
    71      ${level}=    Extract Logger Level         ${logger_name}    ${out}
    72      Should Be Equal        ${level}    ${old_level}
    73      Should Not Be Equal    ${level}    ${expected_level}
    74      rest_api: Change Logger Level      ${node}    ${logger_name}    ${expected_level}
    75      ${out}=      rest_api: Get Loggers List       ${node}
    76      ${level}=    Extract Logger Level             ${logger_name}    ${out}
    77      Should Be Equal        ${level}    ${expected_level}
    78      Should Not Be Equal    ${level}    ${old_level}
    79  
    80  Agent ${ability} Should Be ${expected} On ${node}
    81      ${expected}=    Set Variable if    "${expected}"=="OK"    1    0
    82      ${uri}=         Set Variable     /${ability}
    83      ${out}=         rest_api: Get    ${node}    ${uri}
    84      #Should Match Regexp    ${out}    \\{\\"build_version\\":\\"[a-f0-9]+\\"\\,\\"build_date\\"\\:\\"\\d{4}\\-\\d{2}\\-\\d{2}\\T\\d{2}\\:\\d{2}\\+\\d{2}\\:\\d{2}\\",\\"state\\"\\:${expected},\\"start_time\\":\\d+,\\"last_change\\":\\d+,\\"last_update\\":\\d+,\\"commit_hash\\":\\"[a-e0-9]+\\"\\}
    85      Should Match Regexp    ${out}     \\"build_version\\":\\"[a-z0-9_.-]+\\"
    86      Should Match Regexp    ${out}     \\"build_date\\"\\:\\"\\d{4}\\-\\d{2}\\-\\d{2}\\T\\d{2}\\:\\d{2}\\+\\d{2}\\:\\d{2}\\"
    87      Should Match Regexp    ${out}     \\"state\\"\\:${expected}
    88      Should Match Regexp    ${out}     \\"start_time\\":\\d+
    89      Should Match Regexp    ${out}     \\"last_change\\":\\d+
    90      Should Match Regexp    ${out}     \\"last_update\\":\\d+
    91      Should Match Regexp    ${out}     \\"commit_hash\\":\\"[a-f0-9]+\\"
    92  
    93  Change API Port From ${old_port} To ${new_port} On ${node}
    94      Set Test Variable    ${${node}_REST_API_PORT}         ${new_port}
    95      Set Test Variable    ${${node}_REST_API_HOST_PORT}    ${new_port}
    96      Should Be Equal      ${${node}_REST_API_PORT}    ${new_port}
    97      Should Not Be Equal  ${${node}_REST_API_PORT}    ${old_port}
    98      Remove Node    agent_vpp_1
    99      Add VPP Agent agent_vpp_1
   100      Start VPP On Node agent_vpp_1
   101      Start Agent On ${node} With Port ${new_port}
   102      Sleep    20    # we need wait until agent is fully loaded
   103      Agent readiness Should Be OK On ${node}
   104  
   105  Get Agent Status For ${node} From ETCD Should be ${expected}
   106      ${expected}=    Set Variable if    "${expected}"=="OK"    1    0
   107      ${out}=   Write To Machine    docker     docker exec -it etcd etcdctl get /vnf-agent/${node}/check/status/${AGENT_VER}/agent
   108      Should Contain         ${out}    ${node}
   109      #Should Match Regexp    ${out}    \\{\\"build_version\\":\\"[a-f0-9]+\\"\\,\\"build_date\\"\\:\\"\\d{4}\\-\\d{2}\\-\\d{2}\\T\\d{2}\\:\\d{2}\\+\\d{2}\\:\\d{2}\\",\\"state\\"\\:${expected},\\"start_time\\":\\d+,\\"last_change\\":\\d+,\\"last_update\\":\\d+\\}
   110      Should Match Regexp    ${out}     \\"build_version\\":\\"[a-z0-9_.-]+\\"
   111      Should Match Regexp    ${out}     \\"build_date\\"\\:\\"\\d{4}\\-\\d{2}\\-\\d{2}\\T\\d{2}\\:\\d{2}\\+\\d{2}\\:\\d{2}\\"
   112      Should Match Regexp    ${out}     \\"state\\"\\:${expected}
   113      Should Match Regexp    ${out}     \\"start_time\\":\\d+
   114      Should Match Regexp    ${out}     \\"last_change\\":\\d+
   115      Should Match Regexp    ${out}     \\"last_update\\":\\d+
   116      Should Match Regexp    ${out}     \\"commit_hash\\":\\"[a-f0-9]+\\"
   117      Sleep    20s
   118      ${out2}=    Write To Machine    docker    docker exec -it etcd etcdctl get /vnf-agent/${node}/check/status/${AGENT_VER}/agent
   119      Should Not Be Equal    ${out}    ${out2}
   120  
   121  Get ${plugin} Plugin Status For ${node} From ETCD
   122      ${out}=     Write To Machine    docker     docker exec -it etcd etcdctl get /vnf-agent/${node}/check/status/${AGENT_VER}/plugin/${plugin}
   123      Should Contain    ${out}    ${node}
   124  
   125  
   126  Start Agent On ${node} With Port ${port}
   127      ${out}=    Execute In Container    ${node}    vpp-agent -http-probe-port ${port} --etcd-config=${AGENT_VPP_ETCD_CONF_PATH} --kafka-config=${AGENT_VPP_KAFKA_CONF_PATH} &
   128      [Return]  ${out}
   129  
   130  Add VPP Agent ${node}
   131  #    Log            ${node}
   132  #    Execute On Machine    docker    ${DOCKER_COMMAND} run -e MICROSERVICE_LABEL=${node} -itd --privileged -v "${DOCKER_SOCKET_FOLDER}:${${node}_SOCKET_FOLDER}" -p ${${node}_VPP_HOST_PORT}:${${node}_VPP_PORT} -p ${${node}_REST_API_HOST_PORT}:${${node}_REST_API_PORT} --name ${node} ${AGENT_VPP_1_DOCKER_IMAGE} bash
   133  #    Append To List    ${NODES}    ${node}
   134  #    Sleep    5
   135  #    Create Session    ${node}    http://${DOCKER_HOST_IP}:${${node}_REST_API_HOST_PORT}
   136  #    ${hostname}=    Execute On Machine    docker    ${DOCKER_COMMAND} exec ${node} bash -c 'echo $HOSTNAME'
   137  #    Set Suite Variable    ${${node}_HOlSTNAME}    ${hostname}
   138  
   139      Open SSH Connection    ${node}    ${DOCKER_HOST_IP}    ${DOCKER_HOST_USER}    ${DOCKER_HOST_PSWD}
   140      Execute On Machine     ${node}    ${DOCKER_COMMAND} create -e MICROSERVICE_LABEL=${node} -it --privileged -v "${DOCKER_SOCKET_FOLDER}:${${node}_SOCKET_FOLDER}" -p ${${node}_VPP_HOST_PORT}:${${node}_VPP_PORT} -p ${${node}_REST_API_HOST_PORT}:${${node}_REST_API_PORT} --name ${node} ${AGENT_VPP_1_DOCKER_IMAGE} bash
   141      Write To Machine       ${node}    ${DOCKER_COMMAND} start ${node}
   142      Append To List    ${NODES}    ${node}
   143  #    Open SSH Connection    ${node}_term    ${DOCKER_HOST_IP}    ${DOCKER_HOST_USER}    ${DOCKER_HOST_PSWD}
   144  #    Open SSH Connection    ${node}_vat    ${DOCKER_HOST_IP}    ${DOCKER_HOST_USER}    ${DOCKER_HOST_PSWD}
   145  #    vpp_term: Open VPP Terminal    ${node}
   146  #    vat_term: Open VAT Terminal    ${node}
   147  
   148      Create Session    ${node}    http://${DOCKER_HOST_IP}:${${node}_REST_API_HOST_PORT}
   149      ${hostname}=    Execute On Machine    docker    ${DOCKER_COMMAND} exec ${node} bash -c 'echo $HOSTNAME'
   150      Set Suite Variable    ${${node}_HOSTNAME}    ${hostname}
   151  
   152  Start VPP On Node ${node}
   153  #    Execute In Container    ${node}   vpp unix { cli-listen localhost:5002 } plugins { plugin dpdk_plugin.so { disable } } &
   154      Execute In Container    ${node}   vpp unix { nodaemon cli-listen 0.0.0.0:5002 cli-no-pager } plugins { plugin dpdk_plugin.so { disable } } &
   155      Open SSH Connection    ${node}_term    ${DOCKER_HOST_IP}    ${DOCKER_HOST_USER}    ${DOCKER_HOST_PSWD}
   156      Open SSH Connection    ${node}_vat    ${DOCKER_HOST_IP}    ${DOCKER_HOST_USER}    ${DOCKER_HOST_PSWD}
   157      vpp_term: Open VPP Terminal    ${node}
   158      vat_term: Open VAT Terminal    ${node}
   159