Append 3 more punt path protection TCs
[integration/test.git] / csit / libraries / VtnCoKeywords.robot
index 937640137f91665dc0476c356916a9ef3819d59d..a657bc569372da4b4329ae8364de940b073b43db 100644 (file)
@@ -8,45 +8,73 @@ Library           SSHLibrary
 Library           Collections
 Library           XML
 Variables         ../variables/Variables.py
+Resource          ./CompareStream.robot
 Resource          ./Utils.robot
+Resource          ./MininetKeywords.robot
 
 *** variable ***
-${vlan_topo}=   sudo mn --controller=remote,ip=${CONTROLLER} --custom vlan_vtn_test.py --topo vlantopo
+${vlan_topo}      --custom vlan_vtn_test.py --topo vlantopo
+${vtn_coordinator_nexus_path}    https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/vtn/distribution.vtn-coordinator
+${vtn_dist}       distribution.vtn-coordinator
 
 *** Keywords ***
 Get VtnCo
     [Documentation]    Download the VTN Coordinator from Controller VM
     Log    Download the VTN Coordinator bz2 file
-    SSHLibrary.Open_Connection    ${CONTROLLER}
-    SSHLibrary.Login_With_Public_Key    ${CONTROLLER_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
+    SSHLibrary.Open_Connection    ${ODL_SYSTEM_IP}
+    SSHLibrary.Login_With_Public_Key    ${ODL_SYSTEM_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
     ${VTNC_FILENAME}=    Catenate    SEPARATOR=/    ${WORKSPACE}    vtn_coordinator.tar.bz2
     SSHLibrary.Get_File    ${WORKSPACE}/${BUNDLEFOLDER}/externalapps/*vtn-coordinator*-bin.tar.bz2    ${VTNC_FILENAME}
     SSHLibrary.Close_Connection
-    SSHLibrary.Open_Connection    ${MININET}
-    SSHLibrary.Login_With_Public_Key    ${MININET_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
+    SSHLibrary.Open_Connection    ${TOOLS_SYSTEM_IP}
+    SSHLibrary.Login_With_Public_Key    ${TOOLS_SYSTEM_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
     SSHLibrary.Put_File    ${VTNC_FILENAME}    /tmp
     SSHLibrary.Close_Connection
 
 Start SuiteVtnCo
     [Documentation]    Download and startup the VTN Coordinator.
     Log    Start the VTN Coordinator
-    Get VtnCo
-    ${vtnc_conn_id}=    Open Connection    ${MININET}    prompt=${DEFAULT_LINUX_PROMPT}    timeout=30s
+    #Get VtnCo
+    ${vtnc_conn_id}=    SSHLibrary.Open Connection    ${ODL_SYSTEM_IP}    prompt=${DEFAULT_LINUX_PROMPT}    timeout=30s
     Set Suite Variable    ${vtnc_conn_id}
-    Login With Public Key    ${MININET_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
-    ${VTNC_FILENAME}=    Catenate    SEPARATOR=/    ${WORKSPACE}    vtn_coordinator.tar.bz2
-    Execute Command    tar -C/ -jxvf ${VTNC_FILENAME}
-    Execute Command    /usr/local/vtn/sbin/db_setup
-    Execute Command    /usr/local/vtn/bin/vtn_start
-    Execute Command    /usr/local/vtn/bin/unc_dmctl status
-    Execute Command    /usr/local/vtn/sbin/db_setup
-    Execute Command    sed -i 's/odcdrv_ping_interval = 30/odcdrv_ping_interval = 10/g' /usr/local/vtn/modules/odcdriver.conf
-    Execute Command    sed -i 's/physical_attributes_read_interval = 40/physical_attributes_read_interval = 15/g' /usr/local/vtn/modules/vtndrvintf.conf
-    Execute Command    /usr/local/vtn/bin/vtn_start
-    Execute Command    /usr/local/vtn/bin/unc_dmctl status
-    Execute Command    /usr/local/vtn/bin/drvodc_control loglevel trace
-    Execute Command    /usr/local/vtn/bin/lgcnw_control loglevel trace
-    Execute Command    exit
+    SSHLibrary.Login_With_Public_Key    ${ODL_SYSTEM_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
+    SSHLibrary.Execute Command    sudo mkdir -p /usr/local/vtn
+    SSHLibrary.Execute Command    sudo chown jenkins /usr/local/vtn
+    SSHLibrary.Execute Command    sudo yum install -q -y https://download.postgresql.org/pub/repos/yum/9.3/redhat/rhel-7-x86_64/pgdg-centos93-9.3-3.noarch.rpm
+    SSHLibrary.Execute Command    sudo yum install -q -y postgresql93-libs postgresql93 postgresql93-server postgresql93-contrib postgresql93-odbc
+    Download VtnCo Distribution
+    SSHLibrary.Execute Command    /usr/local/vtn/sbin/db_setup
+    SSHLibrary.Execute Command    /usr/local/vtn/bin/vtn_start
+    SSHLibrary.Execute Command    /usr/local/vtn/bin/unc_dmctl status
+    SSHLibrary.Execute Command    /usr/local/vtn/sbin/db_setup
+    SSHLibrary.Execute Command    sed -i 's/odcdrv_ping_interval = 30/odcdrv_ping_interval = 10/g' /usr/local/vtn/modules/odcdriver.conf
+    SSHLibrary.Execute Command    sed -i 's/physical_attributes_read_interval = 40/physical_attributes_read_interval = 15/g' /usr/local/vtn/modules/vtndrvintf.conf
+    SSHLibrary.Execute Command    /usr/local/vtn/bin/vtn_start
+    SSHLibrary.Execute Command    /usr/local/vtn/bin/unc_dmctl status
+    SSHLibrary.Execute Command    /usr/local/vtn/bin/drvodc_control loglevel trace
+    SSHLibrary.Execute Command    /usr/local/vtn/bin/lgcnw_control loglevel trace
+    SSHLibrary.Execute Command    exit
+
+Download VtnCo Distribution
+    # TODO: https://trello.com/c/fDiIUFMv/431-remove-hardcoded-versions-of-vtn-coordinator-in-libraries-vtncokeywords-robot
+    SSHLibrary.Execute Command    wget "${vtn_coordinator_nexus_path}/maven-metadata.xml"
+    SSHLibrary.Get_file    maven-metadata.xml
+    ${carbon_version}=    XML.Get Element Text    maven-metadata.xml    xpath=.//versions/version[1]
+    ${carbon_version_val}=    SSHLibrary.Execute Command    echo ${carbon_version} | awk -F"-" '{print $1}'
+    ${nitrogen_version}=    XML.Get Element Text    maven-metadata.xml    xpath=.//versions/version[2]
+    ${nitrogen_version_val}=    SSHLibrary.Execute Command    echo ${nitrogen_version} | awk -F"-" '{print $1}'
+    ${oxygen_version}=    XML.Get Element Text    maven-metadata.xml    xpath=.//versions/version[3]
+    ${oxygen_version_val}=    SSHLibrary.Execute Command    echo ${oxygen_version} | awk -F"-" '{print $1}'
+    SSHLibrary.Execute Command    sudo mv maven-metadata.xml old-maven-metadata.xml
+    CompareStream.Run_Keyword_If_Equals    carbon    SSHLibrary.Execute Command    wget "${vtn_coordinator_nexus_path}/${carbon_version}/maven-metadata.xml"
+    CompareStream.Run_Keyword_If_Equals    nitrogen    SSHLibrary.Execute Command    wget "${vtn_coordinator_nexus_path}/${nitrogen_version}/maven-metadata.xml"
+    CompareStream.Run_Keyword_If_Equals    oxygen    SSHLibrary.Execute Command    wget "${vtn_coordinator_nexus_path}/${oxygen_version}/maven-metadata.xml"
+    SSHLibrary.Get_file    maven-metadata.xml
+    ${value}=    XML.Get Element Text    maven-metadata.xml    xpath=.//snapshotVersion[1]/value
+    CompareStream.Run_Keyword_If_Equals    carbon    SSHLibrary.Execute Command    wget '${vtn_coordinator_nexus_path}/${carbon_version}/${vtn_dist}-${value}-bin.tar.bz2'
+    CompareStream.Run_Keyword_If_Equals    nitrogen    SSHLibrary.Execute Command    wget '${vtn_coordinator_nexus_path}/${nitrogen_version}/${vtn_dist}-${value}-bin.tar.bz2'
+    CompareStream.Run_Keyword_If_Equals    oxygen    SSHLibrary.Execute Command    wget '${vtn_coordinator_nexus_path}/${oxygen_version}/${vtn_dist}-${value}-bin.tar.bz2'
+    SSHLibrary.Execute Command    tar -C/ -jxvf ${vtn_dist}*-bin.tar.bz2
 
 Stop SuiteVtnCo
     [Documentation]    Exit the Launch Test
@@ -54,7 +82,7 @@ Stop SuiteVtnCo
 
 Start SuiteVtnCoTest
     [Documentation]    Start the VTNCo Test
-    Create Session    session    http://${MININET}:8083    headers=${VTNC_HEADERS}
+    Create Session    session    http://${ODL_SYSTEM_IP}:8083    headers=${VTNC_HEADERS}
 
 Stop SuiteVtnCoTest
     [Documentation]    Exit the VtnCo Test
@@ -62,22 +90,22 @@ Stop SuiteVtnCoTest
 
 Get Coordinator Version
     [Documentation]    Get API version for testing
-    ${resp}    RequestsLibrary.Get    session    ${VTNWEBAPI}/api_version
+    ${resp}    RequestsLibrary.Get Request    session    ${VTNWEBAPI}/api_version
     Should Be Equal As Strings    ${resp.status_code}    200
 
 Add a Controller
     [Arguments]    ${ctrlname}    ${ctrlip}
     [Documentation]    Create a controller
-    ${controllerinfo}    Create Dictionary    controller_id=${ctrlname}    type=odc    ipaddr=${CONTROLLER}    version=1.0
+    ${controllerinfo}    Create Dictionary    controller_id=${ctrlname}    type=odc    ipaddr=${ctrlip}    version=1.0
     ${controllercreate}    Create Dictionary    controller=${controllerinfo}
     ${controllercreate_json}=    json.dumps    ${controllercreate}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${CTRLS_CREATE}    data=${controllercreate_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${CTRLS_CREATE}    data=${controllercreate_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
 Remove Controller
     [Arguments]    ${ctrlname}
     [Documentation]    Delete a Controller
-    ${resp}    RequestsLibrary.Delete    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}.json
+    ${resp}    RequestsLibrary.Delete Request    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}.json
     Should Be Equal As Strings    ${resp.status_code}    204
 
 Update Controller
@@ -86,7 +114,7 @@ Update Controller
     ${controllerinfo}    Create Dictionary    description=${desc}    ipaddr=${ctrlip}    version=1.0
     ${controllerupdate}    Create Dictionary    controller=${controllerinfo}
     ${controllerupdate_json}=    json.dumps    ${controllerupdate}
-    ${resp}    RequestsLibrary.Put    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}.json    data=${controllerupdate_json}
+    ${resp}    RequestsLibrary.Put Request    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}.json    data=${controllerupdate_json}
     Should Be Equal As Strings    ${resp.status_code}    204
 
 Audit Controller
@@ -95,13 +123,13 @@ Audit Controller
     ${auditinfo}    Create Dictionary    force=false    real-network_audit=false
     ${auditupdate}    Create Dictionary    audit=${auditinfo}
     ${auditupdate_json}=    json.dumps    ${auditupdate}
-    ${resp}    RequestsLibrary.Put    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}/audit.json   data=${auditupdate_json}
+    ${resp}    RequestsLibrary.Put Request    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}/audit.json    data=${auditupdate_json}
     Should Be Equal As Strings    ${resp.status_code}    204
 
 Check Controller Status
     [Arguments]    ${ctrlname}    ${stat}
     [Documentation]    Get controller status
-    ${resp}    RequestsLibrary.Get    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}.json
+    ${resp}    RequestsLibrary.Get Request    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}.json
     ${contents}    To JSON    ${resp.content}
     ${controllerblock}    Get From Dictionary    ${contents}    controller
     ${status}    Get From Dictionary    ${controllerblock}    operstatus
@@ -113,13 +141,13 @@ Add a VTN
     ${vtninfo}    Create Dictionary    vtn_name=${vtnname}    description=${vtndescription}
     ${vtncreate}    Create Dictionary    vtn=${vtninfo}
     ${vtncreate_json}=    json.dumps    ${vtncreate}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${VTNS_CREATE}    data=${vtncreate_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${VTNS_CREATE}    data=${vtncreate_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
 Delete a VTN
     [Arguments]    ${vtnname}
     [Documentation]    Delete a VTN Created
-    ${resp}    RequestsLibrary.Delete    session    ${VTNWEBAPI}/${VTNS}/${vtnname}.json
+    ${resp}    RequestsLibrary.Delete Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}.json
     Should Be Equal As Strings    ${resp.status_code}    204
 
 Create VBR in VTN
@@ -128,8 +156,9 @@ Create VBR in VTN
     ${vbrinfo}    Create Dictionary    vbr_name=${vbrname}    controller_id=${ctrlname}    domain_id=(DEFAULT)
     ${vbrcreate}    Create Dictionary    vbridge=${vbrinfo}
     ${vbrcreate_json}=    json.dumps    ${vbrcreate}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS_CREATE}    data=${vbrcreate_json}
-    Should Be Equal As Strings    ${resp.status_code}    201
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS_CREATE}    data=${vbrcreate_json}
+    Run Keyword If    '${vbrname}' == 'Vbr_audit'    Should Be Equal As Strings    ${resp.status_code}    202
+    ...    ELSE    Should Be Equal As Strings    ${resp.status_code}    201
 
 Create VBRIF in VBR
     [Arguments]    ${vtnname}    ${vbrname}    ${vbrifname}    ${ifdescription}    ${retcode}
@@ -137,7 +166,7 @@ Create VBRIF in VBR
     ${vbrifinfo}    Create Dictionary    if_name=${vbrifname}    description=${ifdescription}
     ${vbrifcreate}    Create Dictionary    interface=${vbrifinfo}
     ${vbrifcreate_json}=    json.dumps    ${vbrifcreate}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VBRIFS_CREATE}    data=${vbrifcreate_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VBRIFS_CREATE}    data=${vbrifcreate_json}
     Should Be Equal As Strings    ${resp.status_code}    ${retcode}
 
 Define Portmap for VBRIF
@@ -146,134 +175,132 @@ Define Portmap for VBRIF
     ${logical_port_info}    Create Dictionary    logical_port_id=${logical_port_id}
     ${portmapdefine}    Create Dictionary    portmap=${logical_port_info}
     ${portmapdefine_json}=    json.dumps    ${portmapdefine}
-    ${resp}    RequestsLibrary.Put    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VBRIFS}/${vbrifname}/${PORTMAP_CREATE}    data=${portmapdefine_json}
+    ${resp}    RequestsLibrary.Put Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VBRIFS}/${vbrifname}/${PORTMAP_CREATE}    data=${portmapdefine_json}
     Should Be Equal As Strings    ${resp.status_code}    204
 
 Add a FLOWLIST
     [Arguments]    ${flowlistname}    ${ipversion}
     [Documentation]    Create FLOWLIST in Coordinator
-    ${flowlistinfo}    Create Dictionary   fl_name=${flowlistname}    ip_version=${ipversion}
+    ${flowlistinfo}    Create Dictionary    fl_name=${flowlistname}    ip_version=${ipversion}
     ${flowlistcreate}    Create Dictionary    flowlist=${flowlistinfo}
     ${flowlistcreate_json}=    json.dumps    ${flowlistcreate}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${FLOWLISTS_CREATE}    data=${flowlistcreate_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${FLOWLISTS_CREATE}    data=${flowlistcreate_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
-
 Create FLOWLISTENTRY
-    [Arguments]   ${flowlistname}
-    [Documentation]    Create Flowlistentry for  Coordinator
-    ${flowlistentryinfo}    Create Dictionary   seqnum=233    macethertype=0x800    ipdstaddr=10.0.0.1   ipdstaddrprefix=32   ipsrcaddr=10.0.0.3   ipsrcaddrprefix=32   ipproto=1
+    [Arguments]    ${flowlistname}
+    [Documentation]    Create Flowlistentry for Coordinator
+    ${flowlistentryinfo}    Create Dictionary    seqnum=233    macethertype=0x800    ipdstaddr=10.0.0.1    ipdstaddrprefix=32    ipsrcaddr=10.0.0.3
+    ...    ipsrcaddrprefix=32    ipproto=1
     ${flowlistentrycreate}    Create Dictionary    flowlistentry=${flowlistentryinfo}
     ${flowlistentrycreate_json}=    json.dumps    ${flowlistentrycreate}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${FLOWLISTS}/${flowlistname}/${FLOWLISTENTRIES_CREATE}    data=${flowlistentrycreate_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${FLOWLISTS}/${flowlistname}/${FLOWLISTENTRIES_CREATE}    data=${flowlistentrycreate_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
 Create FLOWLISTENTRY_ANY in FLOWLIST
-    [Arguments]   ${flowlistname}
-    [Documentation]    Create Flowlistentry_any for  Coordinator
-    ${flowlistentryinfo}    Create Dictionary   seqnum=1
+    [Arguments]    ${flowlistname}
+    [Documentation]    Create Flowlistentry_any for Coordinator
+    ${flowlistentryinfo}    Create Dictionary    seqnum=1
     ${flowlistentrycreate}    Create Dictionary    flowlistentry=${flowlistentryinfo}
     ${flowlistentrycreate_json}=    json.dumps    ${flowlistentrycreate}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${FLOWLISTS}/${flowlistname}/${FLOWLISTENTRIES_CREATE}    data=${flowlistentrycreate_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${FLOWLISTS}/${flowlistname}/${FLOWLISTENTRIES_CREATE}    data=${flowlistentrycreate_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
-
 Create VBRIF in FLOWFILTER
     [Arguments]    ${vtnname}    ${vbrname}    ${vbrifname}    ${ff_type}
     [Documentation]    create vbridge interface flowfilter
     ${flowfilters_info}    Create Dictionary    ff_type=${ff_type}
     ${flowfiltersdefine}    Create Dictionary    flowfilter=${flowfilters_info}
     ${flowfiltersdefine_json}=    json.dumps    ${flowfiltersdefine}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VBRIFS}/${vbrifname}/${FLOWFILTERS_CREATE}    data=${flowfiltersdefine_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VBRIFS}/${vbrifname}/${FLOWFILTERS_CREATE}    data=${flowfiltersdefine_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
 Create FLOWFILTERENTRY DROP In VBRIFFLOWFILTER
-    [Arguments]   ${vtnname}  ${vbrname}    ${vbrifname}   ${actiontype}
-    [Documentation]   create domonstration with pass actiontype
-    ${flowfilterentryinfo}     Create Dictionary    seqnum=233   fl_name=Flowlist1  action_type=${actiontype}  priority=3   dscp=55
+    [Arguments]    ${vtnname}    ${vbrname}    ${vbrifname}    ${actiontype}
+    [Documentation]    create domonstration with pass actiontype
+    ${flowfilterentryinfo}    Create Dictionary    seqnum=233    fl_name=Flowlist1    action_type=${actiontype}    priority=3    dscp=55
     ${flowfilterentrycreate}    Create Dictionary    flowfilterentry=${flowfilterentryinfo}
     ${flowfilterentrycreate_json}=    json.dumps    ${flowfilterentrycreate}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VBRIFS}/${vbrifname}/${FLOWFILTERS}/${FLOWFILTERENTRIES_CREATE}    data=${flowfilterentrycreate_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VBRIFS}/${vbrifname}/${FLOWFILTERS}/${FLOWFILTERENTRIES_CREATE}    data=${flowfilterentrycreate_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
 Create FLOWFILTERENTRY PASS In VBRIFFLOWFILTER
-    [Arguments]   ${vtnname}   ${vbrname}    ${vbrifname}    ${actiontype}   ${seqnum}
-    [Documentation]   create domonstration with pass actiontype
-    ${flowfilterentryinfo}     Create Dictionary    fl_name=Flowlist1  action_type=${actiontype}  priority=3   dscp=55
+    [Arguments]    ${vtnname}    ${vbrname}    ${vbrifname}    ${actiontype}    ${seqnum}
+    [Documentation]    create domonstration with pass actiontype
+    ${flowfilterentryinfo}    Create Dictionary    fl_name=Flowlist1    action_type=${actiontype}    priority=3    dscp=55
     ${flowfilterentrycreate}    Create Dictionary    flowfilterentry=${flowfilterentryinfo}
     ${flowfilterentrycreate_json}=    json.dumps    ${flowfilterentrycreate}
-    ${resp}    RequestsLibrary.Put    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VBRIFS}/${vbrifname}/${FLOWFILTERS}/${FLOWFILTERS_UPDATE}/${seqnum}    data=${flowfilterentrycreate_json}
+    ${resp}    RequestsLibrary.Put Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VBRIFS}/${vbrifname}/${FLOWFILTERS}/${FLOWFILTERS_UPDATE}/${seqnum}    data=${flowfilterentrycreate_json}
     Should Be Equal As Strings    ${resp.status_code}    204
 
 Create FLOWFILTER in VBR
     [Arguments]    ${vtnname}    ${vbrname}    ${ff_type}
     [Documentation]    create vtn flowfilter
     ${flowfilters_info}    Create Dictionary    ff_type=${ff_type}
-    ${flowfiltersdefine}    Create Dictionary   flowfilter=${flowfilters_info}
+    ${flowfiltersdefine}    Create Dictionary    flowfilter=${flowfilters_info}
     ${flowfiltersdefine_json}=    json.dumps    ${flowfiltersdefine}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${FLOWFILTERS_CREATE}    data=${flowfiltersdefine_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${FLOWFILTERS_CREATE}    data=${flowfiltersdefine_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
 Create FLOWFILTERENTRY PASS in VBRFLOWFILTER
-    [Arguments]   ${vtnname}   ${vbrname}   ${actiontype}
-    [Documentation]   create domonstration with pass actiontype
-    ${flowfilterentryinfo}     Create Dictionary    seqnum=233   fl_name=Flowlist1  action_type=${actiontype}  priority=3   dscp=55
-    ${flowfilterentryinfo_1}    Create Dictionary   vnode_name=${vbrname}    fl_name=Flowlist1    direction=in
+    [Arguments]    ${vtnname}    ${vbrname}    ${actiontype}
+    [Documentation]    create domonstration with pass actiontype
+    ${flowfilterentryinfo}    Create Dictionary    seqnum=233    fl_name=Flowlist1    action_type=${actiontype}    priority=3    dscp=55
+    ${flowfilterentryinfo_1}    Create Dictionary    vnode_name=${vbrname}    fl_name=Flowlist1    direction=in
     ${flowfilterentrycreate}    Create Dictionary    flowfilterentry=${flowfilterentryinfo}
     ${flowfilterentrycreate_json}=    json.dumps    ${flowfilterentrycreate}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${FLOWFILTERS}/${FLOWFILTERENTRIES_CREATE}    data=${flowfilterentrycreate_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${FLOWFILTERS}/${FLOWFILTERENTRIES_CREATE}    data=${flowfilterentrycreate_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
 Create FLOWFILTER in VTN
     [Arguments]    ${vtnname}    ${ff_type}
     [Documentation]    create vtn flowfilter
     ${flowfilters_info}    Create Dictionary    ff_type=${ff_type}
-    ${flowfiltersdefine}    Create Dictionary   flowfilter=${flowfilters_info}
+    ${flowfiltersdefine}    Create Dictionary    flowfilter=${flowfilters_info}
     ${flowfiltersdefine_json}=    json.dumps    ${flowfiltersdefine}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${FLOWFILTERS_CREATE}    data=${flowfiltersdefine_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${FLOWFILTERS_CREATE}    data=${flowfiltersdefine_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
 Create FLOWFILTERENTRY PASS in VTNFLOWFILTER
-    [Arguments]   ${vtnname}  ${actiontype}
-    [Documentation]   create domonstration with pass actiontype
-    ${flowfilterentryinfo}     Create Dictionary    seqnum=233   fl_name=Flowlist1  action_type=${actiontype}  priority=3   dscp=55
+    [Arguments]    ${vtnname}    ${actiontype}
+    [Documentation]    create domonstration with pass actiontype
+    ${flowfilterentryinfo}    Create Dictionary    seqnum=233    fl_name=Flowlist1    action_type=${actiontype}    priority=3    dscp=55
     ${flowfilterentrycreate}    Create Dictionary    flowfilterentry=${flowfilterentryinfo}
     ${flowfilterentrycreate_json}=    json.dumps    ${flowfilterentrycreate}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${FLOWFILTERS}/${FLOWFILTERENTRIES_CREATE}    data=${flowfilterentrycreate_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${FLOWFILTERS}/${FLOWFILTERENTRIES_CREATE}    data=${flowfilterentrycreate_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
-
 Create VLANMAP in VBRIDGE
     [Arguments]    ${vtnname}    ${vbrname}    ${vlanid}
     [Documentation]    Create VLANMAP for VBRIDGE in Coordinator
-    ${vlaninfo}    Create Dictionary      vlan_id=${vlanid}
+    ${vlaninfo}    Create Dictionary    vlan_id=${vlanid}
     ${vlancreate}    Create Dictionary    vlanmap=${vlaninfo}
     ${vlancreate_json}=    json.dumps    ${vlancreate}
-    ${resp}    RequestsLibrary.Post    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VLANMAP_CREATE }    data=${vlancreate_json}
+    ${resp}    RequestsLibrary.Post Request    session    ${VTNWEBAPI}/${VTNS}/${vtnname}/${VBRS}/${vbrname}/${VLANMAP_CREATE }    data=${vlancreate_json}
     Should Be Equal As Strings    ${resp.status_code}    201
 
 Start vlan_topo
     [Documentation]    This will start mininet with custom topology on both the Virtual Machines
-    Start Mininet    ${MININET}    ${vlan_topo}   ${CURDIR}/${CREATE_VLAN_TOPOLOGY_FILE_PATH}
-
+    Install Package On Ubuntu System    vlan
+    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_IP}    ${vlan_topo}    ${CURDIR}/${CREATE_VLAN_TOPOLOGY_FILE_PATH}
 
 Delete a FLOWLIST
     [Arguments]    ${flowlistname}
     [Documentation]    Delete a Flowlist
-    ${resp}    RequestsLibrary.Delete    session    ${VTNWEBAPI}/${FLOWLISTS}/${flowlistname}.json
+    ${resp}    RequestsLibrary.Delete Request    session    ${VTNWEBAPI}/${FLOWLISTS}/${flowlistname}.json
     Should Be Equal As Strings    ${resp.status_code}    204
 
 Test Ping
     [Arguments]    ${host1}    ${host2}
     [Documentation]    Ping hosts to check connectivity
-    Write    ${host1} ping -c 4 ${host2}
+    Write    ${host1} ping -c 1 ${host2}
     ${result}    Read Until    mininet>
     Should Contain    ${result}    64 bytes
 
 Verify Switch
     [Arguments]    ${ctrlname}    ${switch_id}
     [Documentation]    Get switch
-    ${resp}    RequestsLibrary.Get    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}/${SW}/${switch_id}.json
+    ${resp}    RequestsLibrary.Get Request    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}/${SW}/${switch_id}.json
     ${contents}    To JSON    ${resp.content}
     ${switchblock}    Get From Dictionary    ${contents}    switch
     ${status}    Get From Dictionary    ${switchblock}    switch_id
@@ -282,6 +309,5 @@ Verify Switch
 Verify SwitchPort
     [Arguments]    ${ctrlname}    ${switch_id}
     [Documentation]    Get switch
-    ${resp}    RequestsLibrary.Get    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}/${SW}/${switch_id}/${PORTS}
+    ${resp}    RequestsLibrary.Get Request    session    ${VTNWEBAPI}/${CTRLS}/${ctrlname}/${SW}/${switch_id}/${PORTS}
     Should Be Equal As Strings    ${resp.status_code}    200
-