Adapt 404 response when delete non-existent element 33/44933/2
authorJose Luis Franco Arza <jose.luis.franco.arza@ericsson.com>
Wed, 31 Aug 2016 12:29:32 +0000 (14:29 +0200)
committerJamo Luhrsen <jluhrsen@redhat.com>
Wed, 7 Sep 2016 17:56:43 +0000 (17:56 +0000)
Add new function "Remove All Elements at URI If Exists" inside Utils.robot
which sends a Delete REST request only if the element sent as input
parameter exists in the datastore.

Delete all calls to "Remove All Elements at URI" at the beggining of every
test case, which was used as "test case setup" and add a Robot FW Test Case
Setup calling the function "Remove All Elements at URI If Exists".

Adapt test cases verifying the deletion of a non-existent element to avoid
calling "Remove All Elements at URI". This function checks that the
result code returned is (200, 201 or 204) and since boron release a 404 is
returned if the element to be removed does not exist in the datastore.
Instead, a delete request is sent and it is checked that the result
obtained is 404 when the element is not present.

Change-Id: Icfba27e646a19aa27f1be24afc398c87b7323ebf
Signed-off-by: Jose Luis Franco Arza <jose.luis.franco.arza@ericsson.com>
csit/libraries/Utils.robot
csit/suites/sfc/SFC_Basic/010__sfc_service_functions.robot
csit/suites/sfc/SFC_Basic/020__sfc_service_forwarders.robot
csit/suites/sfc/SFC_Basic/030__sfc_service_nodes.robot
csit/suites/sfc/SFC_Basic/040__sfc_service_chains.robot
csit/suites/sfc/SFC_Basic/050__sfc_service_schedule_types.robot
csit/suites/sfc/SFC_Basic/060__sfc_service_paths.robot

index e653ae431e303e60eaf732de71aacfb32da4201e..fc1eae670f1a53085dc94c02643c841d4b7b45f9 100644 (file)
@@ -334,6 +334,12 @@ Remove All Elements At URI And Verify
     ${resp}    RequestsLibrary.Get Request    session    ${uri}
     Should Be Equal As Strings    ${resp.status_code}    404
 
+Remove All Elements If Exist
+    [Arguments]    ${uri}
+    [Documentation]    Delete all elements from an URI if the configuration was not empty
+    ${resp}    RequestsLibrary.Get Request    session    ${uri}
+    Run Keyword If    '${resp.status_code}'!='404'    Remove All Elements At URI    ${uri}
+
 Add Elements To URI From File
     [Arguments]    ${dest_uri}    ${data_file}    ${headers}=${headers}
     ${body}    OperatingSystem.Get File    ${data_file}
index 89d880635c45a224c5278ce0d072077e1497417b..b0dddd550f32a21cc6fda9d34c915bab94439bb2 100644 (file)
@@ -2,6 +2,7 @@
 Documentation     Test suite for SFC Service Functions, Operates functions from Restconf APIs.
 Suite Setup       Init Suite
 Suite Teardown    Delete All Sessions
+Test Setup        Remove All Elements If Exist    ${SERVICE_FUNCTIONS_URI}
 Library           SSHLibrary
 Library           Collections
 Library           OperatingSystem
@@ -35,21 +36,18 @@ Delete All Service Functions
 
 Get one Service Function
     [Documentation]    Get one Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
     ${elements}=    Create List    dpi-102-1    dpi
     Check For Elements At URI    ${SERVICE_FUNCTIONS_URI}service-function/dpi-102-1    ${elements}
 
 Get A Non-existing Service Function
     [Documentation]    Get A Non-existing Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}service-function/non-existing-sf
     Should Be Equal As Strings    ${resp.status_code}    404
 
 Delete A Service Function
     [Documentation]    Delete A Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}service-function/dpi-102-1
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
@@ -58,12 +56,12 @@ Delete A Service Function
 
 Delete A Non-existing Empty Service Function
     [Documentation]    Delete A Non existing Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
     ${body}    OperatingSystem.Get File    ${SERVICE_FUNCTIONS_FILE}
     ${jsonbody}    To Json    ${body}
     ${functions}    Get From Dictionary    ${jsonbody}    service-functions
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}service-function/non-existing-sf
+    ${resp}    RequestsLibrary.Delete Request    session    ${SERVICE_FUNCTIONS_URI}service-function/non-existing-sf
+    Should Be Equal As Strings    ${resp.status_code}    404
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     ${result}    To JSON    ${resp.content}
@@ -72,7 +70,6 @@ Delete A Non-existing Empty Service Function
 
 Put one Service Function
     [Documentation]    Put one Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
     ${elements}=    Create List    dpi-102-100    dpi
     Check For Elements At URI    ${SF_DPI102100_URI}    ${elements}
@@ -80,14 +77,12 @@ Put one Service Function
 
 Get Service Function DPL
     [Documentation]    Get Service Function Data Plane Locator
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
     ${elements}=    Create List    100    10100
     Check For Elements At URI    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-100    ${elements}
 
 Put Service Function DPL
     [Documentation]    Put Service Function Data Plane Locator
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
     Add Elements To URI From File    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-101    ${SF_DPL101_FILE}
     ${elements}=    Create List    dpl-101    10101
@@ -97,7 +92,6 @@ Put Service Function DPL
 Put Service Function DPL to a Non-existing Service Function
     [Documentation]    Put Service Function DPL to a Non-existing Service Function
     [Tags]    exclude
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-101    ${SF_DPL101_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
@@ -108,17 +102,12 @@ Put Service Function DPL to a Non-existing Service Function
 
 Delete Service Function DPL
     [Documentation]    Delete Service Function Data Plane Locator
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
     Remove All Elements At URI    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-100
     ${resp}    RequestsLibrary.Get Request    session    ${SF_DPI102100_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Should Not Contain    ${resp.content}    dpl-100
 
-Clean Datastore After Tests
-    [Documentation]    Clean All Service Functions In Datastore After Tests
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
-
 *** Keywords ***
 Init Suite
     [Documentation]    Initialize session and ODL version specific variables
index f0c88d2e70512bce4bb794a0796dabf18f243ab7..b3a5a6fed461311119a3f0cabd014f740e780f33 100644 (file)
@@ -2,6 +2,7 @@
 Documentation     Test suite for SFC Service Function Forwarders, Operates SFFs from Restconf APIs.
 Suite Setup       Init Suite
 Suite Teardown    Delete All Sessions
+Test Setup        Remove All Elements If Exist    ${SERVICE_FORWARDERS_URI}
 Library           SSHLibrary
 Library           Collections
 Library           OperatingSystem
@@ -25,6 +26,7 @@ Put Service Function Forwarders
 
 Delete All Service Function Forwarders
     [Documentation]    Delete all Service Function Forwarders
+    Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
@@ -33,21 +35,18 @@ Delete All Service Function Forwarders
 
 Get one Service Function Forwarder
     [Documentation]    Get one Service Function Forwarder
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${elements}=    Create List    SFF-bootstrap    service-locator:vxlan-gpe    SF1
     Check For Elements At URI    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap    ${elements}
 
 Get A Non-existing Service Function Forwarder
     [Documentation]    Get A Non-existing Service Function Forwarder
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}service-function-forwarder/non-existing-sff
     Should Be Equal As Strings    ${resp.status_code}    404
 
 Delete A Service Function Forwarder
     [Documentation]    Delete A Service Function Forwarder
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code} 
@@ -60,12 +59,12 @@ Delete A Service Function Forwarder
 
 Delete A Non-existing Service Function Forwarder
     [Documentation]    Delete A Non existing Service Function
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${body}    OperatingSystem.Get File    ${SERVICE_FORWARDERS_FILE}
     ${jsonbody}    To Json    ${body}
     ${forwarders}    Get From Dictionary    ${jsonbody}    service-function-forwarders
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}service-function-forwarder/non-existing-sff
+    ${resp}    RequestsLibrary.Delete Request    session    ${SERVICE_FORWARDERS_URI}service-function-forwarder/non-existing-sff
+    Should Be Equal As Strings    ${resp.status_code}    404
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     ${result}    To JSON    ${resp.content}
@@ -74,7 +73,6 @@ Delete A Non-existing Service Function Forwarder
 
 Put one Service Function Forwarder
     [Documentation]    Put one Service Function Forwarder
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SFF_OVS100_URI}    ${SFF_OVS100_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SFF_OVS100_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
@@ -84,14 +82,12 @@ Put one Service Function Forwarder
 
 Get Service Function Forwarder DPL
     [Documentation]    Get Service Function Data Plane Locator
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SFF_OVS100_URI}    ${SFF_OVS100_FILE}
     ${elements}=    Create List    eth0    service-locator:vxlan-gpe
     Check For Elements At URI    ${SFF_OVS100_URI}sff-data-plane-locator/eth0    ${elements}
 
 Put Service Function Forwarder DPL
     [Documentation]    Put Service Function Forwarder Data Plane Locator
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SFF_OVS100_URI}    ${SFF_OVS100_FILE}
     Add Elements To URI From File    ${SFF_OVS100_URI}sff-data-plane-locator/dpl-101    ${SFF_DPL101_FILE}
     ${elements}=    Create List    dpl-101    6101
@@ -100,7 +96,6 @@ Put Service Function Forwarder DPL
 
 Put DPL to a Non-existing Service Function Forwarder
     [Documentation]    Put Service Function DPL to a Non-existing Service Function
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SFF_OVS100_URI}sff-data-plane-locator/dpl-101    ${SFF_DPL101_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
@@ -111,7 +106,6 @@ Put DPL to a Non-existing Service Function Forwarder
 
 Delete Service Function Forwarder DPL
     [Documentation]    Delete Service Function Forwarder Data Plane Locator
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SFF_OVS100_URI}    ${SFF_OVS100_FILE}
     Remove All Elements At URI    ${SFF_OVS100_URI}sff-data-plane-locator/eth0
     ${resp}    RequestsLibrary.Get Request    session    ${SFF_OVS100_URI}
@@ -120,14 +114,12 @@ Delete Service Function Forwarder DPL
 
 Get Service Function Forwarder DPL's Locator
     [Documentation]    Get Service Function Data Plane Locator
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SFF_OVS100_URI}    ${SFF_OVS100_FILE}
     ${elements}=    Create List    6000    service-locator:vxlan-gpe
     Check For Elements At URI    ${SFF_OVS100_URI}sff-data-plane-locator/eth0/data-plane-locator/    ${elements}
 
 Put Service Function Forwarder DPL's Locator
     [Documentation]    Put Service Function Forwarder Data Plane Locator
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SFF_OVS100_URI}    ${SFF_OVS100_FILE}
     Add Elements To URI From File    ${SFF_OVS100_URI}sff-data-plane-locator/dpl-101    ${SFF_DPL101_FILE}
     Add Elements To URI From File    ${SFF_OVS100_URI}sff-data-plane-locator/dpl-101/data-plane-locator/    ${SFF_DPL_LOCATOR_FILE}
@@ -140,7 +132,6 @@ Put Service Function Forwarder DPL's Locator
 Delete Service Function Forwarder DPL's Locator
     [Documentation]    Delete Service Function Forwarder Data Plane Locator
     [Tags]    exclude
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SFF_OVS100_URI}    ${SFF_OVS100_FILE}
     Add Elements To URI From File    ${SFF_OVS100_URI}sff-data-plane-locator/dpl-101    ${SFF_DPL101_FILE}
     Add Elements To URI From File    ${SFF_OVS100_URI}sff-data-plane-locator/dpl-101/data-plane-locator/    ${SFF_DPL_LOCATOR_FILE}
@@ -157,14 +148,12 @@ Delete Service Function Forwarder DPL's Locator
 
 Get Service Function Dictionary From SFF
     [Documentation]    Get Service Function Dictionary From SFF
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${elements}=    Create List    service-function-dictionary    SF1    SF1-DPL    eth0
     Check For Elements At URI    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1    ${elements}
 
 Delete Service Function Dictionary From SFF
     [Documentation]    Delete Service Function Dictionary From SFF
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
@@ -178,7 +167,6 @@ Delete Service Function Dictionary From SFF
 
 Put Service Function Dictionary to SFF
     [Documentation]    Put Service Function Dictionary to SFF
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF100    ${SFF_SFD_SF100_FILE}
     ${elements}=    Create List    SF100    SF2-DPL    eth0
@@ -188,14 +176,12 @@ Put Service Function Dictionary to SFF
 
 Get Service Function Dictionary's DPL From SFF
     [Documentation]    Get Service Function Dictionary From SFF
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${elements}=    create list    sff-sf-data-plane-locator    SF1-DPL    eth0
     Check For Elements At URI    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1/sff-sf-data-plane-locator/    ${elements}
 
 Delete Service Function Dictionary's DPL From SFF
     [Documentation]    Delete Service Function Dictionary From SFF
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1/sff-sf-data-plane-locator/
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
@@ -205,7 +191,6 @@ Delete Service Function Dictionary's DPL From SFF
 
 Put DPL of Service Function Dictionary to SFF
     [Documentation]    Put DPL of Service Function Dictionary to SFF
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1/sff-sf-data-plane-locator/    ${SFF_SFD_LOCATOR_FILE}
     ${elements}=    create list    sff-sf-data-plane-locator    SF2-DPL    eth0
@@ -214,7 +199,6 @@ Put DPL of Service Function Dictionary to SFF
 
 Get Connected SFF Dictionary From SFF
     [Documentation]    Get Connected SFF Dictionary Dictionary From SFF
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${elements}=    create list    connected-sff-dictionary    br-int-ovs-2    sff-sff-data-plane-locator
     Check For Elements At URI    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2    ${elements}
@@ -224,7 +208,6 @@ Get Connected SFF Dictionary From SFF
 
 Delete Connected SFF Dictionary From SFF
     [Documentation]    Delete Connected SFF Dictionary From SFF
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
@@ -237,7 +220,6 @@ Delete Connected SFF Dictionary From SFF
 
 Put Connected SFF Dictionary to SFF
     [Documentation]    Put Connected SFF Dictionary to SFF
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/SFF100    ${SFF_CSD_SFF100_FILE}
     ${elements}=    create list    SFF100    service-function-forwarder:open
@@ -246,24 +228,18 @@ Put Connected SFF Dictionary to SFF
 
 Get Connected SFF Dictionary's DPL From SFF
     [Documentation]    Get Connected SFF Dictionary's DPL From SFF
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     ${elements}=    create list    sff-sff-data-plane-locator    5000    192.168.1.2
     Check For Elements At URI    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2/sff-sff-data-plane-locator/    ${elements}
 
 Put DPL of Connected SFF Dictionary to SFF
     [Documentation]    Put DPL of Connected SFF Dictionary to SFF
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2/sff-sff-data-plane-locator/    ${SFF_CSD_LOCATOR_FILE}
     ${elements}=    create list    sff-sff-data-plane-locator    6000    10.1.1.1
     Check For Elements At URI    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2/sff-sff-data-plane-locator/    ${elements}
     Check For Elements At URI    ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2/    ${elements}
 
-Clean The Datastore After Tests
-    [Documentation]    Clean All Service Function Forwarders In Datastore After Tests
-    Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
-
 *** keywords ***
 Init Suite
     [Documentation]    Initialize session and ODL version specific variables
index 1a9f1e56d24cda2b263c495519f13280a22e56cb..804f7dd5b39f638d449067d4db262e86f1d4b9f9 100644 (file)
@@ -2,6 +2,7 @@
 Documentation     Test suite for SFC Service Nodes, Operates Nodes from Restconf APIs.
 Suite Setup       Init Suite
 Suite Teardown    Delete All Sessions
+Test Setup        Remove All Elements If Exist    ${SERVICE_NODES_URI}
 Library           SSHLibrary
 Library           Collections
 Library           OperatingSystem
@@ -34,21 +35,18 @@ Delete All Service Nodes
 
 Get one Service Node
     [Documentation]    Get one Service Node
-    Remove All Elements At URI    ${SERVICE_NODES_URI}
     Add Elements To URI From File    ${SERVICE_NODES_URI}    ${SERVICE_NODES_FILE}
     ${elements}=    Create List    node-101    firewall-101-2    10.3.1.101
     Check For Elements At URI    ${SERVICE_NODES_URI}service-node/node-101    ${elements}
 
 Get A Non-existing Service Node
     [Documentation]    Get A Non-existing Service Node
-    Remove All Elements At URI    ${SERVICE_NODES_URI}
     Add Elements To URI From File    ${SERVICE_NODES_URI}    ${SERVICE_NODES_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_NODES_URI}service-node/non-existing-sf
     Should Be Equal As Strings    ${resp.status_code}    404
 
 Delete A Service Node
     [Documentation]    Delete A Service Node
-    Remove All Elements At URI    ${SERVICE_NODES_URI}
     Add Elements To URI From File    ${SERVICE_NODES_URI}    ${SERVICE_NODES_FILE}
     Remove All Elements At URI    ${SERVICE_NODES_URI}service-node/node-101
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_NODES_URI}
@@ -57,12 +55,12 @@ Delete A Service Node
 
 Delete A Non-existing Service Node
     [Documentation]    Delete A Non existing Service Node
-    Remove All Elements At URI    ${SERVICE_NODES_URI}
     Add Elements To URI From File    ${SERVICE_NODES_URI}    ${SERVICE_NODES_FILE}
     ${body}    OperatingSystem.Get File    ${SERVICE_NODES_FILE}
     ${jsonbody}    To Json    ${body}
     ${nodes}    Get From Dictionary    ${jsonbody}    service-nodes
-    Remove All Elements At URI    ${SERVICE_NODES_URI}service-node/non-existing-sn
+    ${resp}    RequestsLibrary.Delete Request    session    ${SERVICE_NODES_URI}service-node/non-existing-sn
+    Should Be Equal As Strings    ${resp.status_code}    404
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_NODES_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     ${result}    To JSON    ${resp.content}
@@ -71,16 +69,11 @@ Delete A Non-existing Service Node
 
 Put one Service Node
     [Documentation]    Put one Service Node
-    Remove All Elements At URI    ${SERVICE_NODES_URI}
     Add Elements To URI From File    ${SN_NODE100_URI}    ${SN_NODE100_FILE}
     ${elements}=    Create List    node-100    10.3.1.100    dpi-100-1    firewall-102-1
     Check For Elements At URI    ${SN_NODE100_URI}    ${elements}
     Check For Elements At URI    ${SERVICE_NODES_URI}    ${elements}
 
-Clean All Service Nodes After Tests
-    [Documentation]    Delete all Service Nodes From Datastore After Tests
-    Remove All Elements At URI    ${SERVICE_NODES_URI}
-
 *** keywords ***
 Init Suite
     [Documentation]    Initialize session and ODL version specific variables
index 795a7163375a215ca391fba6f73430d5af2e9f2f..81993bf0e1259f80f63eeb2ef90fa290889940e4 100644 (file)
@@ -2,6 +2,7 @@
 Documentation     Test suite for SFC Service Function Chains, Operates Chains from Restconf APIs.
 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
@@ -25,6 +26,7 @@ Put Service Function Chains
 
 Delete All Service Function Chains
     [Documentation]    Delete all Service Function Chains
+    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}
@@ -33,21 +35,18 @@ Delete All Service Function Chains
 
 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 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 Request    session    ${SERVICE_CHAINS_URI}service-function-chain/SFC1
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
@@ -57,12 +56,12 @@ Delete A Service Function Chain
 
 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.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}
@@ -71,7 +70,6 @@ Delete A Non-existing Service Function Chain
 
 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}
@@ -79,21 +77,18 @@ 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    "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 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 Request    session    ${SERVICE_CHAINS_URI}
@@ -104,16 +99,15 @@ Delete A Service Function From Chain
 
 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    "type":"ids"
@@ -121,10 +115,6 @@ Put one Service Function into Chain
     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
index 2a4046ab8eb75cee84bc729680426d145755aad0..3f1451ebfc8d6df5a6280b98258839e8246e4813 100644 (file)
@@ -2,6 +2,7 @@
 Documentation     Test suite for SFC Function Schedule Algorithm Types, Operates types from Restconf APIs.
 Suite Setup       Init Suite
 Suite Teardown    Delete All Sessions
+Test Setup        Remove All Elements If Exist    ${SERVICE_SCHED_TYPES_URI}
 Library           SSHLibrary
 Library           Collections
 Library           OperatingSystem
@@ -25,6 +26,7 @@ Add Service Function Schedule Algorithm Types
 
 Delete All Service Function Schedule Algorithm Types
     [Documentation]    Delete Service Function Schedule Algorithm Types
+    Add Elements To URI From File    ${SERVICE_SCHED_TYPES_URI}    ${SERVICE_SCHED_TYPES_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_SCHED_TYPES_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Remove All Elements At URI    ${SERVICE_SCHED_TYPES_URI}
@@ -33,7 +35,6 @@ Delete All Service Function Schedule Algorithm Types
 
 Get Ramdom Schedule Algorithm Type
     [Documentation]    Get Ramdom Schedule Algorithm Type
-    Remove All Elements At URI    ${SERVICE_SCHED_TYPES_URI}
     Add Elements To URI From File    ${SERVICE_SCHED_TYPES_URI}    ${SERVICE_SCHED_TYPES_FILE}
     ${elements}=    Create List    random    "enabled":false    service-function-scheduler-type:random
     Check For Elements At URI    ${SERVICE_SCHED_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:random    ${elements}
@@ -41,14 +42,12 @@ Get Ramdom Schedule Algorithm Type
 
 Get A Non-existing Service Function Schedule Algorithm Type
     [Documentation]    Get A Non-existing Service Function Schedule Algorithm Type
-    Remove All Elements At URI    ${SERVICE_SCHED_TYPES_URI}
     Add Elements To URI From File    ${SERVICE_SCHED_TYPES_URI}    ${SERVICE_SCHED_TYPES_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_SCHED_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:user-defined
     Should Be Equal As Strings    ${resp.status_code}    404
 
 Delete Ramdom Schedule Algorithm Type
     [Documentation]    Delete Ramdom Schedule Algorithm Type
-    Remove All Elements At URI    ${SERVICE_SCHED_TYPES_URI}
     Add Elements To URI From File    ${SERVICE_SCHED_TYPES_URI}    ${SERVICE_SCHED_TYPES_FILE}
     Remove All Elements At URI    ${SERVICE_SCHED_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:random
     ${elements}=    Create List    random    service-function-scheduler-type:random
@@ -56,12 +55,12 @@ Delete Ramdom Schedule Algorithm Type
 
 Delete A Non-existing Service Function Schedule Algorithm Type
     [Documentation]    Delete A Non existing Service Function Schedule Algorithm Type
-    Remove All Elements At URI    ${SERVICE_SCHED_TYPES_URI}
     Add Elements To URI From File    ${SERVICE_SCHED_TYPES_URI}    ${SERVICE_SCHED_TYPES_FILE}
     ${body}    OperatingSystem.Get File    ${SERVICE_SCHED_TYPES_FILE}
     ${jsonbody}    To Json    ${body}
     ${types}    Get From Dictionary    ${jsonbody}    service-function-scheduler-types
-    Remove All Elements At URI    ${SERVICE_SCHED_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:user-defined
+    ${resp}    RequestsLibrary.Delete Request    session    ${SERVICE_SCHED_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:user-defined
+    Should Be Equal As Strings    ${resp.status_code}    404
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_SCHED_TYPES_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     ${result}    To JSON    ${resp.content}
@@ -70,15 +69,11 @@ Delete A Non-existing Service Function Schedule Algorithm Type
 
 Put one Service Function Schedule Algorithm Type
     [Documentation]    Put one Service Function Schedule Algorithm Type
-    Remove All Elements At URI    ${SERVICE_SCHED_TYPES_URI}
     Add Elements To URI From File    ${SERVICE_WSP_SCHED_TYPE_URI}    ${SERVICE_WSP_SCHED_TYPE_FILE}
     ${elements}=    Create List    weighted-shortest-path    service-function-scheduler-type:weighted-shortest-path
     Check For Elements At URI    ${SERVICE_WSP_SCHED_TYPE_URI}    ${elements}
     Check For Elements At URI    ${SERVICE_SCHED_TYPES_URI}    ${elements}
 
-Clean Datastore After Tests
-    [Documentation]    Delete All Service Function Schedule Algorithm Types From Datastore After Tests
-    Remove All Elements At URI    ${SERVICE_SCHED_TYPES_URI}
 
 *** keywords ***
 Init Suite
index f313fea56a8f38743c5c8408ac643f0169fb04fa..a1281276a607ec7d6f36e51efb95ad57a8d9cb3c 100644 (file)
@@ -2,6 +2,7 @@
 Documentation     Test suite for SFC Service Function Paths, Operates paths from Restconf APIs.
 Suite Setup       Init Suite
 Suite Teardown    Delete All Sessions
+Test Setup        Remove All Elements If Exist    ${SERVICE_FUNCTION_PATHS_URI}
 Library           SSHLibrary
 Library           Collections
 Library           OperatingSystem
@@ -25,6 +26,7 @@ Add Service Function Paths
 
 Delete All Service Function Paths
     [Documentation]    Delete all Service Function Paths
+    Add Elements To URI From File    ${SERVICE_FUNCTION_PATHS_URI}    ${SERVICE_FUNCTION_PATHS_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTION_PATHS_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Remove All Elements At URI    ${SERVICE_FUNCTION_PATHS_URI}
@@ -33,21 +35,18 @@ Delete All Service Function Paths
 
 Get one Service Function Path
     [Documentation]    Get one Service Function Path
-    Remove All Elements At URI    ${SERVICE_FUNCTION_PATHS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTION_PATHS_URI}    ${SERVICE_FUNCTION_PATHS_FILE}
     ${elements}=    Create List    SFC1-100    "service-chain-name":"SFC1"
     Check For Elements At URI    ${SERVICE_FUNCTION_PATHS_URI}service-function-path/SFC1-100    ${elements}
 
 Get A Non-existing Service Function Path
     [Documentation]    Get A Non-existing Service Function Path
-    Remove All Elements At URI    ${SERVICE_FUNCTION_PATHS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTION_PATHS_URI}    ${SERVICE_FUNCTION_PATHS_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTION_PATHS_URI}service-function-path/non-existing-sfp
     Should Be Equal As Strings    ${resp.status_code}    404
 
 Delete A Service Function Path
     [Documentation]    Delete A Service Function Path
-    Remove All Elements At URI    ${SERVICE_FUNCTION_PATHS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTION_PATHS_URI}    ${SERVICE_FUNCTION_PATHS_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTION_PATHS_URI}service-function-path/SFC1-100
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
@@ -60,12 +59,12 @@ Delete A Service Function Path
 
 Delete A Non-existing Empty Service Function Path
     [Documentation]    Delete A Non existing Service Function Path
-    Remove All Elements At URI    ${SERVICE_FUNCTION_PATHS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTION_PATHS_URI}    ${SERVICE_FUNCTION_PATHS_FILE}
     ${body}    OperatingSystem.Get File    ${SERVICE_FUNCTION_PATHS_FILE}
     ${jsonbody}    To Json    ${body}
     ${paths}    Get From Dictionary    ${jsonbody}    service-function-paths
-    Remove All Elements At URI    ${SERVICE_FUNCTION_PATHS_URI}service-function-path/non-existing-sfp
+    ${resp}    RequestsLibrary.Delete Request    session    ${SERVICE_FUNCTION_PATHS_URI}service-function-path/non-existing-sfp
+    Should Be Equal As Strings    ${resp.status_code}    404
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTION_PATHS_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     ${result}    To JSON    ${resp.content}
@@ -74,7 +73,6 @@ Delete A Non-existing Empty Service Function Path
 
 Put one Service Function
     [Documentation]    Put one Service Function
-    Remove All Elements At URI    ${SERVICE_FUNCTION_PATHS_URI}
     Add Elements To URI From File    ${SERVICE_FUNCTION_PATH400_URI}    ${SERVICE_FUNCTION_PATH400_FILE}
     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTION_PATH400_URI}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
@@ -83,9 +81,6 @@ Put one Service Function
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
     Should Contain    ${resp.content}    SFC1-400
 
-Clean All Service Function Paths After Tests
-    [Documentation]    Delete all Service Function Paths From Datastore After Tests
-    Remove All Elements At URI    ${SERVICE_FUNCTION_PATHS_URI}
 
 *** keywords ***
 Init Suite