Modified SFC test suite for creating flows in sff's and classifiers
[integration/test.git] / csit / suites / sfc / SFC_Basic / 040__sfc_service_chains.robot
index 4db884ad28bc998379b3ea350d8563a79c92f5e1..ebf3a525826d7eb399b3c355885738ea10c6f088 100644 (file)
@@ -1,21 +1,15 @@
 *** Settings ***
 Documentation     Test suite for SFC Service Function Chains, Operates Chains from Restconf APIs.
-Suite Setup       Create Session    session    http://${CONTROLLER}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
+Suite Setup       Init Suite
 Suite Teardown    Delete All Sessions
+Test Setup        Remove All Elements If Exist    ${SERVICE_CHAINS_URI}
 Library           SSHLibrary
 Library           Collections
 Library           OperatingSystem
 Library           RequestsLibrary
 Variables         ../../../variables/Variables.py
 Resource          ../../../libraries/Utils.robot
-
-*** Variables ***
-${SERVICE_CHAINS_URI}    /restconf/config/service-function-chain:service-function-chains/
-${SERVICE_CHAINS_FILE}    ../../../variables/sfc/service-function-chains.json
-${SERVICE_CHAIN100_URI}    /restconf/config/service-function-chain:service-function-chains/service-function-chain/SFC100
-${SERVICE_CHAIN100_FILE}    ../../../variables/sfc/sfc_chain_100.json
-${SERVICE_CHAIN100_SFIDS_URI}    /restconf/config/service-function-chain:service-function-chains/service-function-chain/SFC100/sfc-service-function/ids-abstract100
-${SERVICE_CHAIN100_SFIDS_FILE}    ../../../variables/sfc/sfc_chain_100_sfids.json
+Resource          ../../../libraries/TemplatedRequests.robot
 
 *** Test Cases ***
 Put Service Function Chains
@@ -24,61 +18,58 @@ Put Service Function Chains
     ${body}    OperatingSystem.Get File    ${SERVICE_CHAINS_FILE}
     ${jsonbody}    To Json    ${body}
     ${chains}    Get From Dictionary    ${jsonbody}    service-function-chains
-    ${resp}    RequestsLibrary.Get    session    ${SERVICE_CHAINS_URI}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_CHAINS_URI}
+    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     ${result}    To JSON    ${resp.content}
     ${chain}    Get From Dictionary    ${result}    service-function-chains
     Lists Should be Equal    ${chain}    ${chains}
 
 Delete All Service Function Chains
     [Documentation]    Delete all Service Function Chains
-    ${resp}    RequestsLibrary.Get    session    ${SERVICE_CHAINS_URI}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    Add Elements To URI From File    ${SERVICE_CHAINS_URI}    ${SERVICE_CHAINS_FILE}
+    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_CHAINS_URI}
+    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Remove All Elements At URI    ${SERVICE_CHAINS_URI}
-    ${resp}    RequestsLibrary.Get    session    ${SERVICE_CHAINS_URI}
+    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_CHAINS_URI}
     Should Be Equal As Strings    ${resp.status_code}    404
 
 Get one Service Function Chain
     [Documentation]    Get one Service Function Chain
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}
     Add Elements To URI From File    ${SERVICE_CHAINS_URI}    ${SERVICE_CHAINS_FILE}
     ${elements}=    Create List    SFC1    dpi-abstract1    napt44-abstract1    firewall-abstract1
     Check For Elements At URI    ${SERVICE_CHAINS_URI}service-function-chain/SFC1    ${elements}
 
 Get A Non-existing Service Function Chain
     [Documentation]    Get A Non-existing Service Function Chain
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}
     Add Elements To URI From File    ${SERVICE_CHAINS_URI}    ${SERVICE_CHAINS_FILE}
-    ${resp}    RequestsLibrary.Get    session    ${SERVICE_CHAINS_URI}service-function-chain/non-existing-sfc
+    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_CHAINS_URI}service-function-chain/non-existing-sfc
     Should Be Equal As Strings    ${resp.status_code}    404
 
 Delete A Service Function Chain
     [Documentation]    Delete A Service Function Chain
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}
     Add Elements To URI From File    ${SERVICE_CHAINS_URI}    ${SERVICE_CHAINS_FILE}
-    ${resp}    RequestsLibrary.Get    session    ${SERVICE_CHAINS_URI}service-function-chain/SFC1
-    Should Be Equal As Strings    ${resp.status_code}    200
+    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_CHAINS_URI}service-function-chain/SFC1
+    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Remove All Elements At URI    ${SERVICE_CHAINS_URI}service-function-chain/SFC1
     ${elements}=    Create List    SFC1    dpi-abstract1    napt44-abstract1    firewall-abstract1
     Check For Elements Not At URI    ${SERVICE_CHAINS_URI}    ${elements}
 
 Delete A Non-existing Service Function Chain
     [Documentation]    Delete A Non existing Service Function Chain
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}
     Add Elements To URI From File    ${SERVICE_CHAINS_URI}    ${SERVICE_CHAINS_FILE}
     ${body}    OperatingSystem.Get File    ${SERVICE_CHAINS_FILE}
     ${jsonbody}    To Json    ${body}
     ${chains}    Get From Dictionary    ${jsonbody}    service-function-chains
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}service-function-chain/non-existing-sfc
-    ${resp}    RequestsLibrary.Get    session    ${SERVICE_CHAINS_URI}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    ${resp}    RequestsLibrary.Delete Request    session    ${SERVICE_CHAINS_URI}service-function-chain/non-existing-sfc
+    Should Be Equal As Strings    ${resp.status_code}    404
+    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_CHAINS_URI}
+    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     ${result}    To JSON    ${resp.content}
     ${chain}    Get From Dictionary    ${result}    service-function-chains
     Lists Should be Equal    ${chain}    ${chains}
 
 Put one Service Function Chain
     [Documentation]    Put one Service Function Chain
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}
     Add Elements To URI From File    ${SERVICE_CHAIN100_URI}    ${SERVICE_CHAIN100_FILE}
     ${elements}=    Create List    SFC100    dpi-abstract100    napt44-abstract100    firewall-abstract100
     Check For Elements At URI    ${SERVICE_CHAIN100_URI}    ${elements}
@@ -86,48 +77,53 @@ Put one Service Function Chain
 
 Get one Service Function From Chain
     [Documentation]    Get one Service Function From Chain
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}
     Add Elements To URI From File    ${SERVICE_CHAINS_URI}    ${SERVICE_CHAINS_FILE}
-    ${elements}=    Create List    dpi-abstract1    "order":0    service-function-type:dpi
+    ${elements}=    Create List    dpi-abstract1    "order":0    "type":"dpi"
     Check For Elements At URI    ${SERVICE_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/dpi-abstract1    ${elements}
 
 Get A Non-existing Service Function From Chain
     [Documentation]    Get A Non-existing Service Function From Chain
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}
     Add Elements To URI From File    ${SERVICE_CHAINS_URI}    ${SERVICE_CHAINS_FILE}
-    ${resp}    RequestsLibrary.Get    session    ${SERVICE_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/non-existing-sft
+    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/non-existing-sft
     Should Be Equal As Strings    ${resp.status_code}    404
 
 Delete A Service Function From Chain
     [Documentation]    Delete A Service Function From Chain
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}
     Add Elements To URI From File    ${SERVICE_CHAINS_URI}    ${SERVICE_CHAINS_FILE}
     Remove All Elements At URI    ${SERVICE_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/dpi-abstract1
-    ${resp}    RequestsLibrary.Get    session    ${SERVICE_CHAINS_URI}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_CHAINS_URI}
+    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Should Contain    ${resp.content}    SFC1
     ${elements}=    Create List    dpi-abstract1    service-function-type:dpi
     Check For Elements Not At URI    ${SERVICE_CHAINS_URI}service-function-chain/SFC1/    ${elements}
 
 Delete A Non-existing Service Function From Chain
     [Documentation]    Delete A Non existing Service Function From Chain
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}
     Add Elements To URI From File    ${SERVICE_CHAINS_URI}    ${SERVICE_CHAINS_FILE}
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/non-existing-sft
+    ${resp}    RequestsLibrary.Delete Request    session    ${SERVICE_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/non-existing-sft
+    Should Be Equal As Strings    ${resp.status_code}    404
     ${elements}=    Create List    dpi-abstract1    napt44-abstract1    firewall-abstract1
     Check For Elements At URI    ${SERVICE_CHAINS_URI}service-function-chain/SFC1    ${elements}
     Check For Elements At URI    ${SERVICE_CHAINS_URI}    ${elements}
 
 Put one Service Function into Chain
     [Documentation]    Put one Service Function Chain
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}
     Add Elements To URI From File    ${SERVICE_CHAINS_URI}    ${SERVICE_CHAINS_FILE}
     Add Elements To URI From File    ${SERVICE_CHAIN100_SFIDS_URI}    ${SERVICE_CHAIN100_SFIDS_FILE}
-    ${elements}=    Create List    ids-abstract100    "order":3    service-function-type:ids
+    ${elements}=    Create List    ids-abstract100    "order":3    "type":"ids"
     Check For Elements At URI    ${SERVICE_CHAIN100_SFIDS_URI}    ${elements}
     Check For Elements At URI    ${SERVICE_CHAIN100_URI}    ${elements}
     Check For Elements At URI    ${SERVICE_CHAINS_URI}    ${elements}
 
-Clean All Service Function Chains After Tests
-    [Documentation]    Delete all Service Function Chains From Datastore After Tests
-    Remove All Elements At URI    ${SERVICE_CHAINS_URI}
+*** keywords ***
+Init Suite
+    [Documentation]    Initialize session and ODL version specific variables
+    Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
+    log    ${ODL_STREAM}
+    Set Suite Variable    ${VERSION_DIR}    master
+    Set Suite Variable    ${SERVICE_CHAINS_URI}    /restconf/config/service-function-chain:service-function-chains/
+    Set Suite Variable    ${SERVICE_CHAINS_FILE}    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-chains.json
+    Set Suite Variable    ${SERVICE_CHAIN100_URI}    /restconf/config/service-function-chain:service-function-chains/service-function-chain/SFC100
+    Set Suite Variable    ${SERVICE_CHAIN100_FILE}    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sfc_chain_100.json
+    Set Suite Variable    ${SERVICE_CHAIN100_SFIDS_URI}    /restconf/config/service-function-chain:service-function-chains/service-function-chain/SFC100/sfc-service-function/ids-abstract100
+    Set Suite Variable    ${SERVICE_CHAIN100_SFIDS_FILE}    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sfc_chain_100_sfids.json