SXP: Add tests for binding origins checks
[integration/test.git] / csit / libraries / SxpLib.robot
index f80d370e36e41d62e639aa327e8dff5056cc6e44..d74625150be6729712588826af047b5f78cb1e69 100644 (file)
@@ -16,18 +16,18 @@ ${REST_CONTEXT}    /restconf/operations/sxp-controller
 
 *** Keywords ***
 Post To Controller
-    [Arguments]    ${session}    ${path}    ${DATA}
+    [Arguments]    ${session}    ${path}    ${DATA}    ${rest_context}=${REST_CONTEXT}
     [Documentation]    Post request to Controller and checks response
-    ${resp}    Post Request    ${session}    ${REST_CONTEXT}:${path}    data=${DATA}    headers=${HEADERS_XML}
+    ${resp}    Post Request    ${session}    ${rest_context}:${path}    data=${DATA}    headers=${HEADERS_XML}
     Log    ${resp.content}
     Log    ${session}
     Log    ${path}
     Log    ${DATA}
     Should be Equal As Strings    ${resp.status_code}    200
     ${content}    Evaluate    json.loads('''${resp.content}''')    json
-    ${content}    Get From Dictionary    ${content}    output
-    ${content}    Get From Dictionary    ${content}    result
-    Should Be True    ${content}
+    ${output}    Get From Dictionary    ${content}    output
+    ${result}    Get From Dictionary    ${output}    result
+    Should Be True    ${result}    RPC result is False
 
 Add Node
     [Arguments]    ${node}    ${password}=${EMPTY}    ${version}=version4    ${port}=64999    ${session}=session    ${ip}=${EMPTY}
@@ -80,11 +80,11 @@ Verify Connection
     ${resp}    Get Connections    ${node}    ${session}    ${domain}
     Should Contain Connection    ${resp}    ${ip}    ${port}    ${mode}    ${version}    ${state}
 
-Add Binding
-    [Arguments]    ${sgt}    ${prefix}    ${node}=127.0.0.1    ${domain}=global    ${session}=session
-    [Documentation]    Add binding via RPC to Master DB of node
-    ${DATA}    Add Entry Xml    ${sgt}    ${prefix}    ${node}    ${domain}
-    Post To Controller    ${session}    add-entry    ${DATA}
+Add Bindings
+    [Arguments]    ${sgt}    ${prefixes}    ${origin}=LOCAL    ${node}=127.0.0.1    ${session}=session    ${domain}=global
+    [Documentation]    Add/Update one or more bindings via RPC to Master DB of the node
+    ${DATA}    Add Bindings Xml    ${node}    ${domain}    ${sgt}    ${prefixes}    ${origin}
+    Post To Controller    ${session}    add-bindings    ${DATA}
 
 Get Bindings
     [Arguments]    ${node}=127.0.0.1    ${session}=session    ${domain}=global    ${scope}=all
@@ -94,52 +94,18 @@ Get Bindings
     [Return]    ${resp}
 
 Clean Bindings
-    [Arguments]    ${node}=127.0.0.1    ${session}=session    ${domain}=global
+    [Arguments]    ${node}=127.0.0.1    ${session}=session    ${domain}=global    ${scope}=local
     [Documentation]    Delete all bindings via RPC from Master DB of node
-    ${resp}    Get Bindings    ${node}    ${session}    ${domain}    local
+    ${resp}    Get Bindings    ${node}    ${session}    ${domain}    ${scope}
     @{bindings}    Parse Bindings    ${resp}
     : FOR    ${binding}    IN    @{bindings}
-    \    Clean Binding Default    ${binding}    ${node}    ${session}    ${domain}
-
-Clean Binding Default
-    [Arguments]    ${binding}    ${node}    ${session}    ${domain}
-    [Documentation]    Clean binding
-    Clean Binding    ${binding['sgt']}    ${binding['ip-prefix']}    ${node}    ${session}
-
-Clean Binding At Most Be
-    [Arguments]    ${binding}    ${node}    ${session}    ${domain}
-    [Documentation]    Clean binding
-    Clean Binding    ${binding}    ${binding['binding']}    ${node}    ${session}
-
-Clean Binding
-    [Arguments]    ${sgt}    ${prefixes}    ${node}    ${session}    ${domain}=global
-    [Documentation]    Used for nester FOR loop
-    : FOR    ${prefix}    IN    @{prefixes}
-    \    Delete Binding Default    ${sgt}    ${prefix}    ${node}    ${domain}    ${session}
-
-Update Binding
-    [Arguments]    ${sgtOld}    ${prefixOld}    ${sgtNew}    ${prefixNew}    ${node}=127.0.0.1    ${session}=session
-    ...    ${domain}=global
-    [Documentation]    Updates value of binding via RPC in Master DB of node
-    ${DATA}    Update Binding Xml    ${sgtOld}    ${prefixOld}    ${sgtNew}    ${prefixNew}    ${node}
-    ...    ${domain}
-    Post To Controller    ${session}    update-entry    ${DATA}
-
-Delete Binding Default
-    [Arguments]    ${sgt}    ${prefix}    ${node}    ${domain}    ${session}
-    [Documentation]    Delete binding via RPC
-    Delete Binding    ${sgt}    ${prefix}    ${node}    ${domain}    ${session}
-
-Delete Binding Be
-    [Arguments]    ${sgt}    ${prefix}    ${node}    ${domain}    ${session}
-    [Documentation]    Delete binding via RPC
-    Delete Binding    ${sgt['sgt']}    ${prefix['ip-prefix']}    ${node}    ${domain}    ${session}
-
-Delete Binding
-    [Arguments]    ${sgt}    ${prefix}    ${node}=127.0.0.1    ${domain}=global    ${session}=session
-    [Documentation]    Delete binding via RPC from Master DB of node
-    ${DATA}    Delete Binding Xml    ${sgt}    ${prefix}    ${node}    ${domain}
-    Post To Controller    ${session}    delete-entry    ${DATA}
+    \    Delete Bindings    ${binding['sgt']}    ${binding['ip-prefix']}    ${node}    ${domain}    ${session}
+
+Delete Bindings
+    [Arguments]    ${sgt}    ${prefixes}    ${node}=127.0.0.1    ${domain}=global    ${session}=session
+    [Documentation]    Delete one or more bindings via RPC from Master DB of node
+    ${DATA}    Delete Bindings Xml    ${node}    ${domain}    ${sgt}    @{prefixes}
+    Post To Controller    ${session}    delete-bindings    ${DATA}
 
 Add PeerGroup
     [Arguments]    ${name}    ${peers}=    ${node}=127.0.0.1    ${session}=session
@@ -196,13 +162,13 @@ Delete Domain Filter
     Post To Controller    ${session}    delete-domain-filter    ${DATA}
 
 Should Contain Binding
-    [Arguments]    ${resp}    ${sgt}    ${prefix}    ${db_source}=any
+    [Arguments]    ${resp}    ${sgt}    ${prefix}
     [Documentation]    Tests if data contains specified binding
     ${out}    Find Binding    ${resp}    ${sgt}    ${prefix}
     Should Be True    ${out}    Doesn't have ${sgt} ${prefix}
 
 Should Not Contain Binding
-    [Arguments]    ${resp}    ${sgt}    ${prefix}    ${db_source}=any
+    [Arguments]    ${resp}    ${sgt}    ${prefix}
     [Documentation]    Tests if data doesn't contains specified binding
     ${out}    Find Binding    ${resp}    ${sgt}    ${prefix}
     Should Not Be True    ${out}    Should't have ${sgt} ${prefix}
@@ -222,16 +188,16 @@ Should Not Contain Connection
     Should Not Be True    ${out}    Shouldn't have ${ip}:${port} ${mode} ${version}
 
 Bindings Should Contain
-    [Arguments]    ${sgt}    ${prefix}    ${db_source}=any
+    [Arguments]    ${sgt}    ${prefix}    ${domain}=global    ${scope}=all
     [Documentation]    Retrieves bindings and verifies they contain given binding
-    ${resp}    Get Bindings
-    Should Contain Binding    ${resp}    ${sgt}    ${prefix}    ${db_source}
+    ${resp}    Get Bindings    domain=${domain}    scope=${scope}
+    Should Contain Binding    ${resp}    ${sgt}    ${prefix}
 
 Bindings Should Not Contain
-    [Arguments]    ${sgt}    ${prefix}    ${db_source}=any
+    [Arguments]    ${sgt}    ${prefix}    ${domain}=global    ${scope}=all
     [Documentation]    Retrieves bindings and verifies they do not contain given binding
-    ${resp}    Get Bindings
-    Should Not Contain Binding    ${resp}    ${sgt}    ${prefix}    ${db_source}
+    ${resp}    Get Bindings    domain=${domain}    scope=${scope}
+    Should Not Contain Binding    ${resp}    ${sgt}    ${prefix}
 
 Connections Should Contain
     [Arguments]    ${ip}    ${port}    ${mode}    ${version}    ${state}=none
@@ -254,14 +220,14 @@ Setup Topology Complex
     \    ...    ${PASSWORD}
     \    Wait Until Keyword Succeeds    15    1    Verify Connection    ${version}    both
     \    ...    127.0.0.${node}
-    \    Add Binding    ${node}0    10.10.10.${node}0/32    127.0.0.${node}
-    \    Add Binding    ${node}0    10.10.${node}0.0/24    127.0.0.${node}
-    \    Add Binding    ${node}0    10.${node}0.0.0/16    127.0.0.${node}
-    \    Add Binding    ${node}0    ${node}0.0.0.0/8    127.0.0.${node}
-    Add Binding    10    10.10.10.10/32    127.0.0.1
-    Add Binding    10    10.10.10.0/24    127.0.0.1
-    Add Binding    10    10.10.0.0/16    127.0.0.1
-    Add Binding    10    10.0.0.0/8    127.0.0.1
+    \    Add Bindings    ${node}0    10.10.10.${node}0/32    127.0.0.${node}
+    \    Add Bindings    ${node}0    10.10.${node}0.0/24    127.0.0.${node}
+    \    Add Bindings    ${node}0    10.${node}0.0.0/16    127.0.0.${node}
+    \    Add Bindings    ${node}0    ${node}0.0.0.0/8    127.0.0.${node}
+    Add Bindings    10    10.10.10.10/32    127.0.0.1
+    Add Bindings    10    10.10.10.0/24    127.0.0.1
+    Add Bindings    10    10.10.0.0/16    127.0.0.1
+    Add Bindings    10    10.0.0.0/8    127.0.0.1
 
 Verify Snapshot Was Pushed
     [Arguments]    ${snapshot_string}=22-sxp-controller-one-node.xml
@@ -290,9 +256,9 @@ Clean SXP Session
     Delete All Sessions
 
 Add Domain
-    [Arguments]    ${domain_name}    ${node}=127.0.0.1    ${session}=session
-    [Documentation]    Add Domain via RPC
-    ${DATA}    Add Domain Xml    ${node}    ${domain_name}
+    [Arguments]    ${domain_name}    ${sgt}=None    ${prefixes}=''    ${origin}=LOCAL    ${node}=127.0.0.1    ${session}=session
+    [Documentation]    Add Domain with bindings via RPC
+    ${DATA}    Add Domain Xml    ${node}    ${domain_name}    ${sgt}    ${prefixes}    ${origin}
     Post To Controller    ${session}    add-domain    ${DATA}
 
 Delete Domain
@@ -301,18 +267,6 @@ Delete Domain
     ${DATA}    Delete Domain Xml    ${node}    ${domain_name}
     Post To Controller    ${session}    delete-domain    ${DATA}
 
-Add Bindings
-    [Arguments]    ${sgt}    ${prefixes}    ${node}=127.0.0.1    ${session}=session    ${domain}=global
-    [Documentation]    Add bindings via RPC to Master DB of node
-    ${DATA}    Add Bindings Xml    ${node}    ${domain}    ${sgt}    ${prefixes}
-    Post To Controller    ${session}    add-bindings    ${DATA}
-
-Delete Bindings
-    [Arguments]    ${sgt}    ${prefixes}    ${node}=127.0.0.1    ${session}=session    ${domain}=global
-    [Documentation]    Delete bindings via RPC from Master DB of node
-    ${DATA}    Delete Bindings Xml    ${node}    ${domain}    ${sgt}    ${prefixes}
-    Post To Controller    ${session}    delete-bindings    ${DATA}
-
 Add Bindings Range
     [Arguments]    ${sgt}    ${start}    ${size}    ${node}=127.0.0.1
     [Documentation]    Add Bindings to Node specified by range